2011-05-10 174 views
1

我有一個事件,PropertyChangedEventHandler和我提出這樣的:PropertyChangedEventHandler使用問題

PropertyChanged(this, new PropertyChangedEventArgs("LogFile")); 
PropertyChanged(this, new PropertyChangedEventArgs("Nodes")); 

我也連接到它:

PropertyChanged += UpdateCamxWindowEvent; 

我怎麼能執行UpdateCamxWindowEvent只有當事件引發與"LogFile"

我應該改變我的代碼?

回答

3

除非您創建了另一個事件,否則無法爲特定參數執行特定的方法。你應該做的是改變UpdateCamxWindowEvent,所以只有當參數是LogFile時,它纔會有所作爲。

如果你不能做到這一點,或者在邏輯上並不在你的應用程序有意義的,你可以添加,只是測試參數的處理程序,如果它匹配,調用該方法:

PropertyChanged += (s, e) => { if (e.PropertyName == "LogFile") UpdateCamxWindowEvent(s,e); }; 

注您將無法取消訂閱該活動的匿名方法。如果您需要這樣做,請使用具有相同功能的普通方法。

+0

在代碼中,我可以添加提到的處理程序? – 2011-05-10 21:49:46

+0

@ Akram Shahda,而不是PropertyChanged + = UpdateCamxWindowEvent; – 2011-05-10 21:53:02

0

如果您需要始終觸發事件,則可以在事件處理程序方法中檢查事件處理程序的參數值,以確定要調用的代碼實例。