【发布时间】:2016-09-13 05:08:35
【问题描述】:
我必须在 MapControl 上画线。我有 XAML 查看我的 MapControl:
<Maps:MapControl x:Name="mapMain"
MapServiceToken="{StaticResource MapServiceTokenString}"
RenderTransformOrigin="0.5,0.5"
Margin="0,0,0,0"
extentions:PolyLineMapControl.ItemsCollection="{Binding mapViewModel.PointsOfNodes}">
<Maps:MapItemsControl x:Name="ItemsChanged"
ItemsSource="{x:Bind mapViewModel.PointsOfNodes, Mode=OneWay}">
<Maps:MapItemsControl.ItemTemplate>
<DataTemplate x:DataType="data:PointOfNode">
<StackPanel>
<Border Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<TextBlock Text="{x:Bind DisplayName, Mode=OneWay}"/>
</Border>
<Image Source="{x:Bind ImageSourcePath, Mode=OneWay}"
Maps:MapControl.Location="{x:Bind Location, Mode=OneWay}"
Maps:MapControl.NormalizedAnchorPoint="{x:Bind NormalizedAnchorPoint, Mode=OneWay}">
<Image.Transitions>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</Image.Transitions>
</Image>
</StackPanel>
</DataTemplate>
</Maps:MapItemsControl.ItemTemplate>
</Maps:MapItemsControl>
</Maps:MapControl>
我成功从 mapViewModel 获得积分,但扩展不起作用。
public class PolyLineMapControl
{
public static readonly DependencyProperty ItemsCollectionProperty = DependencyProperty.RegisterAttached("ItemsCollection", typeof(List<PointOfNode>), typeof(PolyLineMapControl), new PropertyMetadata(default(List<PointOfNode>), OnItemsChanged));
public static List<PointOfNode> GetItemsCollection(DependencyObject obj)
{
return (List<PointOfNode>)obj.GetValue(ItemsCollectionProperty);
}
public static void SetItemsCollection(DependencyObject obj, List<PointOfNode> value)
{
obj.SetValue(ItemsCollectionProperty, value);
}
private static void OnItemsChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
//draw line
}
}
属性初始化成功。 当我在 setter、getter、changer 方法和属性中设置制动点时,我检测到了这一点。
【问题讨论】:
-
好的,我将 List
更改为 ObservableCollection 启动应用程序一个去设置器。但不是更多 -
你的
PolyLineMapControl是干什么用的? -
我有一些点 ObservableCollection
像图像一样放在地图上。 MapItemsControl 已绑定到此集合。当集合改变时,我必须划线。
标签: c# uwp extension-methods uwp-xaml uwp-maps