2014-11-04 84 views
0

我有一个实现INotifyPropertyChanged类的DLL。 它有一个字符串属性谁设置触发PropertyChanged。 该字符串在DLL内“异步”修改。 我可以但不希望修改DLL的行为,因为我想保持它作为一般和可重用的尽可能。 如果我将视图中的字段绑定到属性,它会更新正常。 在我的Visual Studio解决方案中,我希望将其保留为MVVM,而不是使用任何轮询循环或定时器。有一个方法对DLL中的PropertyChanged作出反应

我想添加到解决方案是一种方法,以与该字段相同的方式,每当此属性更新时触发。这是可能的并且仍然保持在MVVM模式中?

+1

您可能只需手动将处理程序方法附加到PropertyChanged事件。 – Clemens 2014-11-04 10:02:36

回答

1

INotifyPropertyChanged是一个强制执行PropertyChanged事件的接口。您可以简单地订阅此事件以调用方法:

MyClass myClass = new MyClass(); 
myClass.PropertyChanged += myClass_PropertyChanged; 

... 

public void myClass_PropertyChanged(object sender, PropertyChangedEventArgs e) 
{ 
    if (e.PropertyName == "MyProperty") 
     DoWork(); 
} 

public void DoWork() 
{ 
    //Your functionality. 
} 
+0

这是一个**显式**的方式来做“绑定”**隐式**吗? – Enok82 2014-11-04 10:46:38

+0

这是一个非常简化的表示,是的,我确实相信。 – Sjeijoet 2014-11-04 10:51:41

+1

如果你的意思是他们都使用'PropertyChanged'事件。您可能会发现以下有趣的文章:[MSDN](http://msdn.microsoft.com/zh-cn/library/ms752347(v = vs.110).aspx)&[Scott Logic](http:// www .scottlogic.com /博客/ 2012/04/05 /一切任您想对知识有关,数据绑定功能于WPF的Silverlight的和WP7部分-one.html) – Sjeijoet 2014-11-04 11:01:08

相关问题