2016-05-04 206 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