订阅 propertyChanged 事件 PostSharp

Subscribe to propertyChanged event PostSharp

我的 ViewModel 是用 PostSharp 制作的:

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

}

Selection 绑定到列表框的选择 属性。我如何订阅这个 属性 的变化?我想在 Selection 更改它的值时调用一个方法。

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

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

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

详情见http://doc.postsharp.net/inotifypropertychanged-add#consuming