这个社区中有很多关于单击按钮打开窗口 View 的问题,只是我们需要创建 View 的实例并使用 .Show
,有些问题是基于使用 User在窗口 View 中进行控制。
我按照 MVVM 模式创建一个 WPF 应用程序,在 View 中我创建了一个名为 SalesView.xaml
的文件,它是一个 User Control(WPF)
View ,并通过默认情况下,我从 App.xaml
(窗口 View )设置 Dashboard.xaml
,项目结构如下:
我的要求是我在 Dashboard.xaml
中有一个按钮,单击此按钮我想打开一个 SalesView.xaml
这是一个用户控件(WPF)
View 不是窗口 View 。
最佳答案
您似乎需要一些简短的外壳来托管您的用户控件。最简单的方法是将它们作为内容而不是以前的内容放在主窗口上。或者使用像 Prism 这样的框架。
通常情况下,我会创建一个 Controller / View 管理器类。然后将我的 View 和虚拟机传递给它,然后该类将其绑定(bind)并将其放入托管窗口中。
class ViewManager
{
public void ShowView<T>(object viewModel) where T: UserControl, new()
{
var view = T();
var window = new Window(); // feel free to prelace this simple approach with hosting shell
view.DataContext = viewModel;
window.Content = view;
window.Show();
}
}
使用示例:
new ViewManager().ShowView<MyUserControl>(new MyViewModel());
关于c# - 单击 WPF 中的按钮显示用户控件 (WPF) 查看页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38496528/