Двойное одновременное изменение свойства вызывает только одно событие propertyChanged, а второе игнорируется. - PullRequest
0 голосов
/ 19 февраля 2019

Двойное одновременное изменение свойства модели представления запускает только одно событие 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
    }

У меня есть возможность настроить задержку, чтобы первый код работал так же, как второй

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...