2010-11-17 82 views
1

對於WCF實現我相當陌生,而且我遇到了一些數據綁定的困難。也就是說,我的silverlight應用程序中有2個單選按鈕(屬性綁定到我的一個數據協定中的屬性)。我也有一個蒙面的文本框,根據所選的單選按鈕進行更改。 「被屏蔽的文本框」的文本被綁定到WCF的數據協定的另一個屬性。WCF DataContract中的OnPropertyChanged事件

我的思考過程是在數據契約上實現「INotifyPropertyChanged」接口,並使用「OnPropertyChanged」事件觸發掩碼文本框,根據所選單選按鈕更改其「掩碼」。那麼這一直沒有得到很好的發揮,因爲我無法從WCF中正常工作的OnPropertyChanged事件。

你們有沒有任何解決方法來解決這個希望很小的問題?

非常感謝你提前, -Tom

+1

數據合同是否在共享程序集中聲明?您是否在創建服務引用時檢查過,沒有創建新的數據協定類型? – Anero 2010-11-18 00:10:25

回答

1

我通過在客戶端創建一個包裝類(擴展了WCF的數據約定)得到了我所需要的。然後我在這個包裝類上實現了INotifyPropertyChanged接口。這可能不是最漂亮的解決方法,但它可以完成工作。

2

你的那句「我無法獲得OnPropertyChanged事件從WCF正常工作。」觸發一些警告鈴聲。

是在客戶端還是服務器上修改數據?

你必須明白,如果一個WCF服務返回一個對象給客戶端,客戶端具有此對象的副本,不是參考。客戶端不會收到服務器對象副本拋出的任何事件。

如果您希望數據通知由服務器觸發並由客戶端接收,則必須使用雙向(雙向)綁定來實現此功能。您不能使用.NET事件實現服務器到客戶端的通知(至少不能用於分佈式通信部分)。