订阅propertyChanged事件PostSharp

时间:2016-05-04 10:01:22

标签: mvvm inotifypropertychanged postsharp

我使用PostSharp制作了我的ViewModel:

[NotifyPropertyChanged]
class ProfileSelectorViewModel
{
    public int Selection { get; set; }

}

Selection绑定到列表框的selection属性。我如何订阅此房产的更改?我希望在Selection更改其值时调用方法。

1 个答案:

答案 0 :(得分:2)

您可以通过投射PropertyChanged类的对象来订阅ProfileSelectorViewModel事件。由于您的工具可能会抱怨该类尚未实现接口INotifyPropertyChanged,因此您可以使用辅助方法Post.Cast<SourceType, TargetType>(SourceType)

因此,如果您有obj类型的对象ProfileSelectorViewModel和处理更改的方法OnSelectionChanged,则订阅如下所示:

Post.Cast<ProfileSelectorViewModel,INotifyPropertyChanged>(obj).PropertyChanged += OnSelectionChanged;

有关详细信息,请参阅http://doc.postsharp.net/inotifypropertychanged-add#consuming