根据父属性切换模板。可能?

时间:2011-12-21 05:01:23

标签: c# silverlight xaml mvvm bing-maps

这是我的情景。使用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>

在底部,您只需使用Border和TextBlock声明DataTemplate即可看到我如何绑定“自定义”图钉。

我想要的是为同一个项目声明3个模板,并根据ZoomLevel

MainMap属性选择它们

例如,当ZoomLevel&lt; = 3时,我将显示小点,当它在3到8之间时,我将显示更多带有ID的花式图钉,当它为8+时,我可能会显示更多信息。

这是一个简单的想法,但我想知道是否可能......

1 个答案:

答案 0 :(得分:0)

查看Silverlight的DataTemplateSelector解决方案。