2010-05-23 49 views
1

我正在使用MVVM學習WPF,對於初學者,我在MVVM上查看了Jason Dolinger的視頻。在那裏他提到,與MVF一起使用MVVM的優點之一是雙向數據綁定。我的問題是雙向數據綁定是什麼意思?是否有能力1)將數據從控件(View)綁定到VM中的屬性,以及2)集合或屬性中的任何更改都反映在視圖中?如果我錯了,誰能詳細解釋一下它是什麼,它有什麼優勢?這可能是一個非常簡單的疑問,但我對WPF很陌生,現在它的術語已經從WinForms中移除了。WPF中的雙向數據綁定究竟是什麼?

回答

3

你沒有錯。雙向數據綁定就是這個意思。
您將視圖與其ViewModel相關聯,因此您在其中一個視圖中所做的每個更改都會反映到另一個視圖中。
要獲得這種行爲,必須在ViewModel中實現接口INotifyPropertyChange,或者使用依賴屬性而不是普通的CLR屬性。
您也可以使用其他類型的數據綁定,例如單向或單向來源。然而,默認是雙向的。
希望這有助於。問候

+1

很高興聽到我幾乎是正確的。另一個問題是,這是否意味着M-V-VM將在沒有WPF的情況下實現?就像WPF和M-V-VM一樣硬耦合?我問這是因爲,直到我沒有找到沒有WPF/SL的M-V-VM的實現。 – blntechie 2010-05-23 16:47:56

+3

實際上,默認綁定類型取決於依賴項屬性。事實上,依賴項屬性的默認值是OneWay,但是一些WPF控件已經重寫了它們的一些屬性(比如TextBox.Text)的TwoWay。 – 2010-05-23 19:57:03

+0

MVVM模式實際上是開發人員學習如何有效使用WPF非常強大且遍及全球的數據綁定技術的產物,因此您不可能在其他任何環境中運行該模式。 – 2010-05-23 20:02:18

0

一般的想法是,不僅是反映在UI中的DataContext的任何改變,而且對UI的改變都被推回到DataContext中。

所以你是對的:)