使用MVX收听PropertyChanged

时间:2014-02-27 22:13:09

标签: c# listener mvvmcross

我可以使用MvvmCross使用侦听器来侦听特定属性。我如何监听我的类的所有属性,以及(或者)特定对象的所有属性?

_listener = new MvxPropertyChangedListener(this);
_listener.Listen(() => HighlightText, sourceHandler);
_listener.Listen(() => SearchText, sourceHandler);

当前方法效果很好,因为我可以轻松地重命名属性名称。

1 个答案:

答案 0 :(得分:3)

最简单的方法是使用https://github.com/MvvmCross/MvvmCross/blob/v3.1/Cirrious/Cirrious.MvvmCross/ViewModels/MvxPropertyChangedListener.cs

中的代码订阅自己
 _token = _ViewModel.WeakSubscribe(OnPropertyChanged);

 private void OnPropertyChanged(object sender, PropertyChangedEventArgs e)
 { 
      // your code - may or may not use e.PropertyName
 } 

您可以在任何INotifyPropertyChanged对象上轻松执行此操作 - 并且(通常)只应在ui线程上调用您的事件处理程序。