Вот мой сценарий. Работа с контролем Bing Map (MVVM):Включить шаблон, основанный на родительском свойстве. Возможное?
<m:Map x:Name="MainMap"
ZoomLevel="{Binding MapZoomLevel, Mode=TwoWay}"
Center="{Binding MapCenter, Mode=TwoWay}"
LogoVisibility="Collapsed"
CopyrightVisibility="Collapsed"
CredentialsProvider="{Binding BingApiKey}"
UseInertia="True"
Mode="Road" Grid.Column="2" Grid.RowSpan="5">
<m:MapItemsControl
ItemsSource="{Binding Source={StaticResource WorkLayerData}}">
<m:MapItemsControl.ItemTemplate>
<DataTemplate>
<Border m:MapLayer.Position="{Binding Location}"
Background="LightPink" BorderBrush="Black">
<TextBlock Text="{Binding DisplayId}" />
</Border>
</DataTemplate>
</m:MapItemsControl.ItemTemplate>
</m:MapItemsControl>
</m:Map>
На день вы видите, как я связываю свою «пользовательскую» защелку просто объявляя DataTemplate
с Border и TextBlock.
То, что я хочу, чтобы объявить 3 шаблоны для того же элемента и выбрать их на основе ZoomLevel
собственности MainMap
Например, когда ZoomLevel < = 3 Я willdisplay маленькие точки, когда она находится в пределах от 3 до 8 I будет отображать более причудливую кнопку с идентификатором, а когда она будет 8+, я могу отобразить еще больше информации.
Это простая идея, но я хотел бы, если это возможно, чтобы узнать ..