Wpf 使用触发器更改XAML贴图图钉的背景色

Wpf 使用触发器更改XAML贴图图钉的背景色,wpf,xaml,mvvm,wpf-controls,bing-maps,Wpf,Xaml,Mvvm,Wpf Controls,Bing Maps,我试图使用DataTemplate触发器更改XAML映射图钉的背景颜色,但可能代码中有错误。其思想是将地图的ItemSource绑定到PushpinModel的ObservableCollection,当属性IsOnline的值为true时,pushpin应该变为绿色 这是我的地理位置.xaml: <m:Map CredentialsProvider="XXX" Mode="Road"> <m:MapItemsControl Name="Pushpins" ItemsS

我试图使用DataTemplate触发器更改XAML映射图钉的背景颜色,但可能代码中有错误。其思想是将地图的ItemSource绑定到PushpinModel的ObservableCollection,当属性IsOnline的值为true时,pushpin应该变为绿色

这是我的
地理位置.xaml

<m:Map CredentialsProvider="XXX" Mode="Road">
    <m:MapItemsControl Name="Pushpins" ItemsSource="{Binding PushpinCollection}" >
        <m:MapItemsControl.ItemTemplate>
            <DataTemplate>
                <m:Pushpin Location="{Binding Path=Location}" />
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding Path=IsOnline}" Value="True">
                        <Setter Property="m:Pushpin.Background" Value="Green"></Setter>
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>
        </m:MapItemsControl.ItemTemplate>
    </m:MapItemsControl>
</m:Map>
<m:Map CredentialsProvider="XXX" Mode="Road">
    <m:MapItemsControl Name="Pushpins" ItemsSource="{Binding PushpinCollection}" >
        <m:MapItemsControl.ItemTemplate>
            <DataTemplate>
                <m:Pushpin Location="{Binding Path=Location}" />
                 <m:Pushpin.Style>
                    <Style TargetType="m:Pushpin">
                         <Setter Property="Background" Value="Red" />
                         <Style.Triggers>
                             <DataTrigger Binding="{Binding IsOnline}" Value="True">
                                 <Setter Property="Background" Value="Green" />
                             </DataTrigger>
                         </Style.Triggers>
                    </Style>
                <m:Pushpin.Style>
            </DataTemplate>
        </m:MapItemsControl.ItemTemplate>
    </m:MapItemsControl>
</m:Map>
我对
Setter
属性有一些疑问,因为我认为我没有更改正确的项


有什么建议吗?谢谢你们

最后,我找到了一种使用
Style.Triggers
更改图钉颜色的方法。 这是正在工作的
地理位置.xaml

<m:Map CredentialsProvider="XXX" Mode="Road">
    <m:MapItemsControl Name="Pushpins" ItemsSource="{Binding PushpinCollection}" >
        <m:MapItemsControl.ItemTemplate>
            <DataTemplate>
                <m:Pushpin Location="{Binding Path=Location}" />
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding Path=IsOnline}" Value="True">
                        <Setter Property="m:Pushpin.Background" Value="Green"></Setter>
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>
        </m:MapItemsControl.ItemTemplate>
    </m:MapItemsControl>
</m:Map>
<m:Map CredentialsProvider="XXX" Mode="Road">
    <m:MapItemsControl Name="Pushpins" ItemsSource="{Binding PushpinCollection}" >
        <m:MapItemsControl.ItemTemplate>
            <DataTemplate>
                <m:Pushpin Location="{Binding Path=Location}" />
                 <m:Pushpin.Style>
                    <Style TargetType="m:Pushpin">
                         <Setter Property="Background" Value="Red" />
                         <Style.Triggers>
                             <DataTrigger Binding="{Binding IsOnline}" Value="True">
                                 <Setter Property="Background" Value="Green" />
                             </DataTrigger>
                         </Style.Triggers>
                    </Style>
                <m:Pushpin.Style>
            </DataTemplate>
        </m:MapItemsControl.ItemTemplate>
    </m:MapItemsControl>
</m:Map>

没有使用bing地图,但您是否尝试过设置图钉本身的样式,而不是指定datatemplate。使用图钉样式将使您能够更好地控制其功能,并使您能够在特定条件下(如您的应用程序)为图钉设置自定义图标。