MVVM:属性的触发器方法随Fody.PropertyChanged而改变

时间:2016-02-18 10:47:53

标签: c# mvvm inotifypropertychanged fody-propertychanged

我想在属性上运行一个方法。我希望我的代码能够编译成这样的东西:

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

1 个答案:

答案 0 :(得分:0)

在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();
}