Вот мой сценарий. Работа с контролем 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, я буду отображать маленькие точки, когда это между 3 и 8, я буду отображать более необычные кнопки с идентификатором, а когда это 8+, я могу отображать еще больше информации. </p>
Это простая идея, но я хотел бы знать, если это возможно ..