Wpf 使用者控制項和 MVVM
我正在考慮為我的應用程序編寫一個 WPF 使用者控制項。我在我的應用程序中使用 MVVM。
使用者控制項可能需要可以設置我的父視圖的依賴屬性。使用 MVVM 時,其想法是父視圖最終將在
UserControlsDP 與父視圖的 VM 之間創建綁定)
Dependency Properties需要在 View 類中創建,因為 VM 不繼承自DependencyObject. 這意味著在後面的 XAML 程式碼中添加程式碼。我想知道您是否可以就在使用 MVVM 開發 WPF 應用程序時如何設計使用者控制項提供建議…
**案例 1:**如果您創建此控制項只是為了在您的應用程序中使用,那麼您可以繼續
ViewModel為它創建一個,但是您不需要創建 DP,您ViewModel只需實現INotifyPropertyChanged並且您的父 Vm 仍然可以綁定到他們。在我們的例子中,對於使用者控制項,我們創建了單獨的 VM,並且它的一個實例存在於
ParentVM. 因此,父視圖將包含此控制項,並將綁定UserControlVM到此控制項(ParentVM.UserControlVM),而使用者控制項將處理其他綁定。**案例 2:**如果您的控制項將被其他應用程序/開發人員使用,並且您不想讓它保持簡單,那麼繼續在控制項模板實現之後創建自定義控制項。這樣,您也可以創建無外觀控制項並使用
dependency properties。此外,使用該控制項的人不需要了解相關的視圖模型並使用它。一些類似的問題/文章:
WPF design question (custom control or mvvm): WPF design question (custom control or mvvm)
WPF 中使用 MVVM 概念的自定義控制項: <http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/6293b176-e1e9-4610-af49-d53e6d294969/>
帶有 MVVM 和依賴屬性的 WPF 使用者控制地獄:帶有 MVVM 和依賴屬性的 WPF 使用者控制地獄