2

我想对更改的属性运行一个方法。我希望我的代码编译成这样的:

public string Property
    {
        get { return _property; }
        set
        {
            _property= value;
            IWantToCallFromHere(); // I want to inject this call
            NotifyPropertyChanged();
        }
    }
4

1 回答 1

1

这在 Wiki 中名为On_PropertyName_Changed的​​页面中进行了描述。

本质上,您添加了一个具有命名约定的方法private void OnYourPropertyNameChanged()

您想要实现的完整示例如下:

public string Property
{
    get; set;
}

private void OnPropertyChanged()
{
    IWantToCallFromHere();
}

被翻译成

private string _property;
public string Property
{
    get => _property; 
    set
    {
        if(_property != value)
        {
            _property = value;
            OnPropertyChanged();
            NotifyPropertyChanged();
        }
    }
}

private void OnPropertyChanged()
{
    IWantToCallFromHere();
}
于 2020-08-11T10:16:06.717 回答