我有一個簡單的屬性在我的視圖模型是字符串類型。我想將它綁定到文本框,以便更改文本框更新字符串並更改字符串更新文本框。我是否真的有一個圍繞實現INotifyPropertyChanged的字符串類型編寫一個包裝類,還是我在這裏丟失了一些令人難以置信的簡單東西?wpf databinding - 與字符串的雙向綁定?
1
A
回答
2
實現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));
1
2
實際上,你不必圍繞字符串類型做一個包裝類。 INotifyPropertyChanged將針對每個ViewModel類實現。該接口需要向綁定框架發送有關更改數據的通知。
我建議您訪問http://mvvmfoundation.codeplex.com/並將MVVM基礎類整合到您的WPF項目中。 MVVM基礎提供了一組基本的可重用類,每個人都應該使用。儘管還有像Cinch,Onyx等其他廣泛的WPF框架,但可以使用。
相關問題
- 1. WPF - 雙向綁定
- 2. WPF雙向綁定
- 3. WPF ComboBox雙向綁定
- 4. WPF雙向綁定XML
- 5. WPF DataGrid雙向綁定
- 6. 雙向數據綁定Angular 2錯誤與字符串
- 7. 與$ routeParams的雙向綁定?
- 8. Knockout.js雙向綁定:數字格式爲字符串
- 9. WPF中的雙向Treeview綁定
- 10. 綁定Image.Source到WPF中的字符串?
- 11. 雙向綁定DataGrid與ListView
- 12. 雙向綁定與elvis-operator
- 13. MvvmCross:雙向綁定與MonoTouch.Dialog
- 14. WPF Databinding Converter .NET
- 15. WPF treeview selectedItem databinding
- 16. 綁定字符串的子字符串
- 17. Angularjs文字雙向綁定
- 18. WPF雙向數據綁定限制
- 19. WPF雙向綁定無限循環
- 20. WPF雙向綁定工作不
- 21. 雙向wpf datagrid綁定到數據庫
- 22. WPF雙向綁定未從UI更新
- 23. WPF雙向綁定不起作用
- 24. DataGridCheckboxColumn雙向綁定
- 25. WPF綁定到字符串值到TextBlock
- 26. WPF綁定StringFormat短日期字符串
- 27. WPF combobox SelectedValue綁定到字符串
- 28. WPF綁定字符串格式問題
- 29. 雙向綁定
- 30. 雙向綁定
我們是不是通過從依賴對象中派生ViewModel類而使它變得沉重? – Trainee4Life 2009-09-30 18:35:15
可能,但有好處。我沒有事實告訴你他們應該總是從DependencyObject派生出來,但我已經在許多文章中閱讀過它,並在許多視頻中聽到過,例如blog.lab49.com/archives/2650 Jason Dolinger Intro to MVVM模式。這聽起來很正確,因爲VM類將控制窗口的所有方面(狀態,動畫,綁定)。 – Carlo 2009-09-30 18:59:34
我也看到了MVVM的JD介紹,並發現它是迄今爲止在WPF上見過的最豐富的截屏視頻。這就是我現在使用MVVM模式的唯一原因,而不是使用內聯winforms編碼風格來攻擊程序。我不確定重量依賴對象帶來了什麼,但它看起來是一個相當自然的基類,給出了視圖模型應該服務的目的。 – Chris 2009-09-30 21:09:48