2011-12-21 3 views
0

Вот мой сценарий. Работа с контролем 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+, я могу отобразить еще больше информации.

Это простая идея, но я хотел бы, если это возможно, чтобы узнать ..

ответ

Смежные вопросы