2013-05-27 49 views
4

我不確定我完全理解綁定的優點。例如,如果我想爲一個字符串值綁定到一個TextBlock我需要做到以下幾點:綁定的優點?

  1. 創建擴展INotifyPropertyChanged的
  2. 字符串添加到類的類(比如:MyString的)
  3. 延長MyString的設定方法,使其調用其他方法(比如:OnPropertyChanged)
  4. 創建OnPropertyChanged方法調用PropertyChangedEventHandler事件

然後我需要創建一個新的插件將類TextBlock.DataContext設置爲指向該類,最後爲綁定添加XAML位。

有人可以解釋在簡單地設置這樣做的好處:

TextBlock.Text = MyString的;

謝謝!

回答

1

優點是您可以在多個位置更改和顯示值,而無需每次更改值時更新某個方法以添加另一個TextBlock分配。任何新的顯示控件都將自己綁定到屬性上,其餘部分是自動的。

現在,如果你真的只是在一個地方設置的價值,並在一個控制顯示它,那麼你是對的,沒有多少意義。

+0

我明白了,謝謝你的回答! – user2424495

5
  1. MyString的任何更改都不會自動反映在您的用戶界面中。你的代碼背後將充斥着「當這個事件發生時,更新這些數據」,所以你基本上會爲每個視圖編寫你自己的混亂的數據綁定邏輯。
0

對於TextBlock綁定到靜態字符串,使用數據綁定的好處並不特別明顯。

但是,如果MyString的值在應用程序運行時期間發生更改,它將變得更加有用 - 尤其是在擁有該屬性的對象不知道TextBlock的情況下。 UI和底層數據層之間的這種分離可以使用諸如MVVM之類的設計模式來創建。

數據綁定對於更復雜的屬性(如ListBox控件中的Items)也很有用。只要將ListBox.Items綁定到ObservableCollection類型的屬性上,只要該集合的內容發生更改,UI就會自動更新。