如何使用WPF

时间:2015-05-16 21:09:39

标签: c# wpf xaml mvvm

在我的WPF窗口中,我想同时在不同位置显示不同的视图。请注意,这些视图不会以任何方式直接关联,因此它们将执行不同的操作。

使用当前的MVVM模式,我只能在MainWindow.xaml中一次绑定到特定视图

如果有人能推动我朝着正确的方向努力,我将不胜感激。感谢

2 个答案:

答案 0 :(得分:1)

该方法应适用于共享视图模型和具有分离的模型。

您的视图应作为单独的控件实现,并绑定到相应数据源的实例。您可以通过创建用户控件,然后将控件的DataContext设置为预期视图模型类型的新实例来完成此操作。

在主窗口中,使用最有意义的内容构建区域布局,我假设一个包含行和列的网格。

接下来,添加每个视图的实例,并在面板中的必要位置找到它们。默认情况下,视图会包含您在构建它们时为其提供的数据源,因此它们都具有视图模型实例。

如果要共享单个视图模型,请在主窗口中创建一个实例作为资源,并将每个视图上的DataContext设置为该资源。

如果是单独的视图模型,要么采用视图创建的默认视图模型,要么创建新实例作为资源并再次绑定它们 - 再次在主窗口中。

答案 1 :(得分:0)

除了Kidshaw的回答,您不仅限于在同一窗口中拥有所有模型和视图。 您可以轻松打开具有不同模型的新窗口。

以下是我过去用过的一篇文章,以帮助您入门:MVVMLight Using Two Views

您还可以查看此question,了解有关使用多个窗口的更多详细信息。