【发布时间】:2011-08-04 18:45:49
【问题描述】:
基本上我的 MainViewModel.cs 中有:
ObservableCollection<TabItem> MyTabs { get; private set; }
但是,我需要以某种方式不仅能够创建选项卡,而且能够在维护 MVVM 的同时加载选项卡内容并将其链接到相应的视图模型。
基本上,我如何才能将用户控件作为 tabitem 的内容加载,并将该用户控件连接到适当的视图模型。使这变得困难的部分是 ViewModel 不应该构造实际的视图项,对吗?或者可以吗?
基本上,这是否适合 MVVM:
UserControl address = new AddressControl();
NotificationObject vm = new AddressViewModel();
address.DataContext = vm;
MyTabs[0] = new TabItem()
{
Content = address;
}
我之所以这么问,是因为我正在从 ViewModel 中构建一个 View (AddressControl),对我来说这听起来像是一个 MVVM 禁忌。
【问题讨论】:
-
+1 好问题。在 PRISM 指南中,他们并没有真正涵盖这种情况。
-
他们没有在手册中介绍,但在参考实现中介绍了。
-
这是一个纯粹的 C#/WPF/MVVM 问题,是否集成/使用 PRISM。
标签: c# wpf mvvm tabcontrol tabitem