[英]How do I Encapsulate a WPF ViewModel/View UserControl as a Control
我建立了一個WPF UserControl View / ViewModel對:視圖XAML處理布局和綁定,而ViewModel處理邏輯,與推薦的MVVM模式保持一致。
我希望能夠重新使用它作為控件。
如何隱藏/封裝與視圖關聯的ViewModel,以便可以像使用標准控件(例如按鈕)一樣使用控件?
即如何隱藏控件的viewmodel?
取決於如何將ViewModel類綁定到控件。 如果您這樣做:
YourControl()
{
DataContex = new ViewModel();
}
然后我沒有看到任何問題。 添加對您的控件的引用並使用它。
您可以在XAML中將ViewModel創建為StaticResource。 將DataContext設置為ViewModel的問題在於,您不能使用不再可以從使用控件的窗口或頁面中使用DataContext的情況。
在您的XAML中聲明您的ViewModel:
<myNS:MyViewModel x:Key="ViewModel />
在XAML中引用您的視圖模型:
<TextBlock Text="{Binding Source={StaticResource ViewModel}, Path=TextToBind}" />
在您的Code Behind中,您可以快速訪問和初始化,我通常會創建一個屬性以便於參考我的視圖模型。
private MyViewModel viewModel
{
get { return this.Resources["ViewModel"] as MyViewModel; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.