【发布时间】:2010-05-06 10:12:41
【问题描述】:
我有一个主窗口和许多想要根据用户选择显示/隐藏的用户控件。例如,有一个名为 Customer 的用户控件应该从数据库中获取所有客户,或者有一个用户控件是注册服务的表单。等等。这些控件中的每一个都有应从数据库中获取数据的视图模型。问题是我不知道以正确的方式设置数据上下文。为了简单起见,我的模型是一个 ado.net 实体数据模型。
我试过了:
<UserControl.DataContext>
<vm:CustomerViewModel/>
</UserControl.DataContext>
我将字段绑定到模型字段,但没有数据可见。在我使用 MainWindowViewModel 中的方法并将 viewmodel 设置为 App.xaml.cs 中的视图并调用该方法之前:
Views.MainWindow newMainV = new Views.MainWindow();
ViewModels.MainVM mainVM = new ViewModels.MainVM();
mainVM.LoadCustomers();
newMainV.DataContext = mainVM;
newMainV.Show();
但我认为主窗口应该有自己的视图模型,只处理命令,每个用户控件都应该有自己的视图模型,可以获取所需的数据。
我的方法有什么问题?
感谢您的帮助。
【问题讨论】: