C# 单击WPF中的按钮即可显示用户控件(WPF)视图页面
在这个社区中,点击按钮打开窗口视图有很多问题,我们只需要创建视图实例并使用C# 单击WPF中的按钮即可显示用户控件(WPF)视图页面,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,在这个社区中,点击按钮打开窗口视图有很多问题,我们只需要创建视图实例并使用。Show,有些问题是基于在窗口视图中使用用户控件 我按照MVVM模式创建一个WPF应用程序,在视图中我创建了一个名为SalesView.xaml的文件,这是一个User Control(WPF)视图,默认情况下,我从App.xaml中设置Dashboard.xaml,它是一个窗口视图,项目结构如下: 我的要求是在仪表板中有一个按钮.xaml单击此按钮,我想打开一个SalesView.xaml,它是用户控件(WPF)视图
。Show
,有些问题是基于在窗口视图中使用用户控件
我按照MVVM模式创建一个WPF应用程序,在视图中我创建了一个名为SalesView.xaml
的文件,这是一个User Control(WPF)
视图,默认情况下,我从App.xaml
中设置Dashboard.xaml
,它是一个窗口视图,项目结构如下:
我的要求是在
仪表板中有一个按钮.xaml
单击此按钮,我想打开一个SalesView.xaml
,它是用户控件(WPF)
视图,而不是窗口视图。似乎需要一些shell来承载用户控件。最简单的方法是将它们作为内容放在主窗口上,而不是以前的内容。或者使用类似的框架
通常,我会创建一个名为控制器/视图管理器的类。然后将我的视图和vm传递给它,然后类将绑定它并将其放入宿主窗口
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();
}
}
类视图管理器
{
public void ShowView(对象视图模型),其中T:UserControl,new()
{
var-view=T();
var window=new window();//请随意使用宿主shell预先体验这种简单方法
view.DataContext=viewModel;
window.Content=view;
window.Show();
}
}
使用示例:
new ViewManager().ShowView<MyUserControl>(new MyViewModel());
newviewmanager().ShowView(新的MyViewModel());