Я использую элемент управления Bing Maps для отображения серии пользовательских кнопок, представляющих объекты, которые постоянно перемещаются и меняют состояние.
При использовании привязки данных различные свойства объектов обновляются, как и должно, но по некоторым причинам это не относится к их расположению.
У меня есть карта, привязанная к ObservableCollection как таковая:
<UserControl.Resources>
<DataTemplate x:Key="PushpinTemplate">
<v:CustomPushpin />
</DataTemplate>
</UserControl.Resources>
...
<m:Map Name="map">
<m:MapItemsControl ItemTemplate="{StaticResource PushpinTemplate}" ItemsSource="{Binding Objects}" />
</m:Map>
... и в CustomPushpin:
<UserControl
...
m:MapLayer.Position="{Binding Location}" m:MapLayer.PositionOrigin="BottomCenter"
mc:Ignorable="d" d:DesignHeight="126" d:DesignWidth="85">
Как и все другие свойства, расположение отдельных объектов реализовано с использованием INotifyPropertyChanged.
private Location _location;
public Location Location
{
get { return _location; }
set { _location = value; OnPropertyChanged("Location"); }
}
Когда карта движется, из-за панорамирования или масштабирования, объекты перемещаются, но другие не изменяются.
Я не могу понять, что я делаю здесь что-то не так или это проблема с элементом управления Bing Maps.
Есть мысли?