Что ж, ваш вопрос становится мутным, когда таинственный "taxiLayer" явно становится мутным, когда вы хотите установить привязку на нем вместо "точки" (которую, я полагаю, представляет автомобиль).
Что должно произойти, так это то, что вы используете свойство зависимостей MapLayer.Position
в качестве присоединенного свойства. Когда UIElement, к которому он прикреплен, является дочерним по отношению к MapLayer
слою карты, знает, как его расположить.
Таким образом, вопрос заключается в том, как назначить привязку этому свойству, чтобы при изменении значения связанного объекта позиция обновлялась. Я собираюсь сделать предположение, что Elipse, созданный в предыдущей части кода, доступен как поле, которое я назову car
. Тогда код может выглядеть примерно так: -
private Elipse AddCarDot(object source)
{
Ellipse point = new Ellipse();
point.Width = 15;
point.Height = 15;
point.Fill = new SolidColorBrush(Colors.Blue);
point.Opacity = 0.65;
MapLayer.SetPositionOrigin(point, PositionOrigin.Center);
point.SetBinding(MapLayer.PositionProperty, new Binding("CarLocation") {Source = source});
carLayer.Children.Add(point);
}
private void cmbCar_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if(cmbCar.SelectedItem != null)
{
AddCarDot(cmbCar);
}
}
Теперь предположим, что у вас есть объект, имеющий свойство CarLocation
, реализующее INotifyPropertyChanged
, поэтому привязка может быть предупреждена, когда CarLocation
изменит точку, которая будет перемещаться соответствующим образом.