2016-05-04 162 views
1

我有我的视图模型与PostSharp做:订阅PropertyChanged事件PostSharp

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

} 

Selection被绑定到一个列表框的选择属性。我怎样才能订阅这个属性的变化?我想在Selection更改其值时调用方法。

回答

1

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

所以,如果你有ProfileSelectorViewModel类型的对象obj和方法OnSelectionChanged处理的变化,订阅看起来是这样的:

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

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

+0

谢谢。我改变了你提供给这个的代码:'Post.Cast (this).PropertyChanged + = OnSelectionChanged;' 并把它放到'ProfileSelectorViewModel'的构造函数中。这真的很好! – chris579