【发布时间】:2012-01-25 13:02:32
【问题描述】:
我正在尝试实现 DataTemplateSelector,就像在这里完成的那样:http://www.codeproject.com/KB/silverlight/SLTemplateSelector.aspx
此 XAML 工作正常。然而,这不是我想要的。我想根据ZoomLevel选择模板
所以,我需要以某种方式将 ZoomLevel 传递给我的班级 Mobile:DevicePushpinTemplateSelector。可能吗?我试图设置Content="{Binding ZoomLevel, ElementName=MainMap}",它确实将 ZoomLevel 作为参数传递给我的选择器。但是里面的所有模板(DotTemplate、NumberedTemplate、DetailedTemplate)都是NULL。而且,我不确定在这种情况下如何绑定模板内部。
<m:Map x:Name="MainMap"
ZoomLevel="{Binding MapZoomLevel, Mode=TwoWay}">
<m:MapItemsControl
ItemsSource="{Binding Source={StaticResource WorkLayerData}}">
<m:MapItemsControl.ItemTemplate>
<DataTemplate>
<Mobile:DevicePushpinTemplateSelector Content="{Binding}">
<Mobile:DevicePushpinTemplateSelector.DotTemplate>
<DataTemplate>
<Ellipse m:MapLayer.Position="{Binding Location}"
Width="10" Height="10" Stroke="Black" Fill="Red" StrokeThickness="2" />
</DataTemplate>
</Mobile:DevicePushpinTemplateSelector.DotTemplate>
<Mobile:DevicePushpinTemplateSelector.NumberedTemplate>
<DataTemplate>
<Ellipse m:MapLayer.Position="{Binding Location}"
Width="10" Height="10" Stroke="Black" Fill="Red" StrokeThickness="2" />
</DataTemplate>
</Mobile:DevicePushpinTemplateSelector.NumberedTemplate>
<Mobile:DevicePushpinTemplateSelector.DetailedTemplate>
<DataTemplate>
<Ellipse m:MapLayer.Position="{Binding Location}"
Width="10" Height="10" Stroke="Black" Fill="Red" StrokeThickness="2" />
</DataTemplate>
</Mobile:DevicePushpinTemplateSelector.DetailedTemplate>
</Mobile:DevicePushpinTemplateSelector>
</DataTemplate>
</m:MapItemsControl.ItemTemplate>
</m:MapItemsControl>
</m:Map>
【问题讨论】:
-
对我来说同样的情况 - 很想知道任何人对如何解决这个问题的意见
标签: c# silverlight xaml binding datatemplate