Двойное одновременное изменение свойства модели представления запускает только одно событие BindableProperty.PropertyChanged, а секунда игнорируется.
Примеры
VM.MyProperty = new Point[1];
VM.MyProperty = new Point[2];
//The BindableProperty.PropertyChanged will be called once.
-
VM.MyProperty = new Point[1];
await Task.Delay(75);
VM.MyProperty = new Point[2];
//The BindableProperty.PropertyChanged will be called twice.
--XAML
<cc:MyControl UpdatePoints="{Binding MyProperty}">
</cc:MyControl>
- Мой пользовательский элемент управления, связанный с MyProperty
public static BindableProperty UpdatePointsProperty = BindableProperty.Create("UpdatePoints", typeof(Point[]), typeof(Scene), null, BindingMode.OneWay, propertyChanged: UpdatePointsChanged);
public Defenition UpdatePoints
{
get { return (Defenition)GetValue(UpdatePointsProperty); }
set { SetValue(UpdatePointsProperty, value); }
}
private static void UpdatePointsChanged(BindableObject bindable, object oldValue, object newValue)
{
//only once, but I need it twice
}
У меня есть возможность настроить задержку, чтобы первый код работал так же, как второй