2011-03-09 165 views
0

我創建了我自己的UserControl,它具有一些從某些東西計算出來的屬性,我們稱它爲Result。現在,我想把這個控件放在一個Grid上,並且我有一些buisness對象。我想將此對象中的屬性綁定到我的屬性Result。所以,我做這樣的事情:WPF綁定到我自己的屬性

當然
<MyControl Result="{Binding PropertyInObject}" ... 

中DataContext設置和其他屬性的綁定(WPF屬性)工作。但是這不是。 首先它拍攝一個異常,說我不能綁定到非依賴項屬性。所以我把它註冊爲一個。現在它沒有例外,但也沒有完成工作。那麼我該怎麼做?

回答

0

執行INotifyPropertyChanged接口並在進行計算後引發PropertyChanged事件。然後將控件默認(twoway)綁定到您的屬性。

我建議你這本書的研究:Programming WPF.

1
  1. 你必須讓你的Result屬性在你的用戶控件的依賴項屬性。這樣你就可以將任何值綁定到這個屬性。以下是一個示例,說明如何實現自定義Dependency Prooperty
  2. 在您的業務對象中,您需要實現INotifyPropertyChanged以便通知您的Result屬性關於業務對象的任何更改。這裏是一個例子如何實現INotifyPropertyChanged PropertyChanged event