Обнаружение изменений значения без использования INotifyPropertyChanged - PullRequest
0 голосов
/ 17 декабря 2018

Есть ли способ обнаружить изменения в поле или свойстве без использования INotifyPropertyChanged?

Моя цель - подключиться, например, к некоторому полю и обнаружить, что его значение изменилось, даже если оно былоint field.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Нет эффекта, который вы могли бы использовать при написании целого числа, кроме того, которое вы написали сами.Обойти INotifyPropertyChanged.

невозможно. Вы можете обернуть поле свойством, которое вызывает событие.У вас может быть класс менеджера, который предоставляет свойство и с помощью которого вы управляете этим полем, даже если поле не является частью этого класса.Вы можете опрашивать значение с помощью потока и, если оно изменяется, вызывать событие.

В большинстве случаев разумный подход заключается в том, чтобы следовать шаблону mvvm как можно ближе, чтобы никто не был слишком удивлен в будущем.

0 голосов
/ 17 декабря 2018

Вы можете создать выбранное событие при изменении свойства.Единственное, что нужно сделать вашим верхним слоям, это подписаться на событие SomeProperty.Вы можете заменить делегата EventHandler на то, что соответствует вашим потребностям.

 public event EventHandler SomePropertychanged;

    private int _SomeProperty;
    public int SomeProperty
    {
        get
        {
            return this._SomeProperty;
        }
        set
        {
            if (this._SomeProperty != value)
                SomePropertychanged?.Invoke(this, new EventArgs());
        }
    }
...