2
DataTemplateトリガを使用してXAMLマップのプッシュピンの背景色を変更しようとしていますが、そのアイデアは、地図のItemSourceがPushpinModelのObservableCollectionにバインドされ、プロパティIsOnlineの値がtrueのときには、押ボタンが緑色になります。私は変更しないでいると思う原因私は、Setter
のProperty
に関するいくつかの疑問を持っているトリガを使用してXAML Mapのプッシュピンの背景色を変更します。
namespace MyNamespace
{
internal class Pushpins : ObservableCollection<PushpinModel> { }
internal class PushpinModel
{
public PushpinModel(double latitude, double longitude)
{
Location = new Location(latitude, longitude);
}
public Location Location { get; set; }
public bool IsOnline { get; set; } = false;
}
internal class GeolocationViewModel : INotifyPropertyChanged
{
public GeolocationViewModel()
{
pushpinCollection = new Pushpins();
CreatePushpins();
}
private Pushpins pushpinCollection;
public Pushpins PushpinCollection
{
get { return pushpinCollection; }
}
private void CreatePushpins()
{
Random rnd = new Random();
for (int i = 1; i <= 100; i++)
{
PushpinModel pin = new PushpinModel(rnd.NextDouble() * 180 - 90, rnd.NextDouble() * 360 - 180);
if (rnd.NextDouble() >= 0.5)
pin.IsOnline = true;
pushpinCollection.Add(pin);
}
OnPropertyChanged("PushpinCollection");
}
#region IPropertyChange
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
}
:
<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>
、ここでは、ビューモデルGeolocationViewModel.cs
である:ここでは
は私Geolocation.xaml
です右の項目。
提案がありますか?君たちありがとう!
は、ビングマップで働いていないが、あなたはプッシュピン自体のスタイルを設定するのではなくするDataTemplateを指定して試してみました。プッシュピンのスタイルを使用すると、その機能をより詳細に制御でき、プッシュピンのカスタムアイコンを自分のような特定の条件に設定できるようになります。 –