簡體   English   中英

WPF數據綁定-用字符串的兩種方式綁定?

[英]wpf databinding - two way binding with a string?

我的視圖模型具有一個簡單的屬性,其類型為字符串。 我想將此綁定到文本框,以便更改文本框可更新字符串,而更改字符串可更新文本框。 我真的有一個圍繞實現INotifyPropertyChanged的字符串類型編寫包裝器類,還是我在這里缺少了一個非常簡單的東西?

實現INotifyPropertyChanged真的很容易。 但是我會做的是,ViewModel類幾乎總是(如果不是總是)繼承自DependencyObject。 我將使用DependencyProperty這個文本屬性,該屬性自動通知對綁定到的內容的更改。 您可以使用C#中的propdp快捷方式(在Visual Studio 2008中,不確定2005是否也可以)來更快地創建DependencyProperty,只需鍵入propdp並按兩次Tab鍵即可。 它看起來像這樣:

    public string SomeText
    {
        get { return (string)GetValue(SomeTextProperty); }
        set { SetValue(SomeTextProperty, value); }
    }

    // Using a DependencyProperty as the backing store for SomeText.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty SomeTextProperty =
        DependencyProperty.Register("SomeText", typeof(string), typeof(YourClassName), new UIPropertyMetadata(String.Empty));

實際上,您不必圍繞字符串類型創建包裝器類。 將為每個ViewModel類實現INotifyPropertyChanged。 需要此接口將有關已更改數據的通知發送到綁定框架。

我建議訪問http://mvvmfoundation.codeplex.com/並將MVVM基礎類合並到WPF項目中。 MVVM基礎提供了每個人都應該使用的一組基本的可重用類。 盡管還有其他廣泛的WPF框架,例如Cinch,Onyx等,但是您可以使用。

使用DependencyProperty

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM