2014-11-04 37 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

相關問題