如何使用WPF在不同区域显示不同的视图

本文关键字:显示 视图 区域 何使用 WPF | 更新日期: 2023-09-27 17:49:28

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

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

如果有人能告诉我该怎么做,我会很感激的。由于

如何使用WPF在不同区域显示不同的视图

这种方法应该既适用于共享视图模型,也适用于分离视图模型。

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

在你的主窗口内,用任何最有意义的方法构建你的区域布局,我假设是一个有行和列的网格。

接下来添加每个视图的实例,并将它们定位在面板中需要的位置。视图将默认拥有你在构建它们时给它们的数据源,所以它们都已经有一个视图模型实例了。

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

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

除了Kidshaw的答案之外,您并不局限于将所有模型和视图放在同一个窗口中。你可以很容易地打开新的窗口,使用不同的模型。

这是我以前用过的一篇文章:MVVMLight Using Two Views。