在我的WPF窗口中,我想同时在不同位置显示不同的视图。请注意,这些视图不会以任何方式直接关联,因此它们将执行不同的操作。
使用当前的MVVM模式,我只能在MainWindow.xaml中一次绑定到特定视图
如果有人能推动我朝着正确的方向努力,我将不胜感激。感谢
答案 0 :(得分:1)
该方法应适用于共享视图模型和具有分离的模型。
您的视图应作为单独的控件实现,并绑定到相应数据源的实例。您可以通过创建用户控件,然后将控件的DataContext
设置为预期视图模型类型的新实例来完成此操作。
在主窗口中,使用最有意义的内容构建区域布局,我假设一个包含行和列的网格。
接下来,添加每个视图的实例,并在面板中的必要位置找到它们。默认情况下,视图会包含您在构建它们时为其提供的数据源,因此它们都具有视图模型实例。
如果要共享单个视图模型,请在主窗口中创建一个实例作为资源,并将每个视图上的DataContext
设置为该资源。
如果是单独的视图模型,要么采用视图创建的默认视图模型,要么创建新实例作为资源并再次绑定它们 - 再次在主窗口中。
答案 1 :(得分:0)
除了Kidshaw的回答,您不仅限于在同一窗口中拥有所有模型和视图。 您可以轻松打开具有不同模型的新窗口。
以下是我过去用过的一篇文章,以帮助您入门:MVVMLight Using Two Views。
您还可以查看此question,了解有关使用多个窗口的更多详细信息。