Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Unity和MVVM在WPF应用程序中切换视图?_Wpf_Mvvm_Views_Unity Container - Fatal编程技术网

如何使用Unity和MVVM在WPF应用程序中切换视图?

如何使用Unity和MVVM在WPF应用程序中切换视图?,wpf,mvvm,views,unity-container,Wpf,Mvvm,Views,Unity Container,我是WPF的新手,正在尝试设置一个需要切换视图的应用程序 例如,用户正在查看包含多个组件的系统,当他们单击组件时,应切换到与该组件关联的视图,以替换以前的系统视图。据我所知,这里应该使用控制器,但我无法实现 我已经找到了一些例子,但是项目太大了,我无法真正了解视图切换的具体情况。这里真正对我有帮助的是应用程序文件中Unity设置的一些示例代码,它允许多个视图,控制器中切换视图的代码,以及与使控制器切换视图的按钮相关联的代码 如果您刚开始使用WPF并直接跳转到使用IOC/MVVM,那么您可能需要考

我是WPF的新手,正在尝试设置一个需要切换视图的应用程序

例如,用户正在查看包含多个组件的系统,当他们单击组件时,应切换到与该组件关联的视图,以替换以前的系统视图。据我所知,这里应该使用控制器,但我无法实现

我已经找到了一些例子,但是项目太大了,我无法真正了解视图切换的具体情况。这里真正对我有帮助的是应用程序文件中Unity设置的一些示例代码,它允许多个视图,控制器中切换视图的代码,以及与使控制器切换视图的按钮相关联的代码


如果您刚开始使用WPF并直接跳转到使用IOC/MVVM,那么您可能需要考虑退一步,并从WPF基本原理开始,即布局、路由事件、命令、绑定、依赖属性、NoTIFYY属性更改等。 要开始,请执行以下操作:


对于我们大多数凡人来说,WPF有着陡峭的学习曲线。然而,一旦你度过了第一个难关,“啊哈时刻”就开始定期出现。

我使用的是Mvvm Light,但我相信Unity也会类似

您应该有一个ViewModelLocator,用于注册ViewModels

您应该有一些样式或数据模板,根据遇到的视图模型告诉框架要显示什么视图

您应该有一些绑定到的属性,即基本视图模型

从这里开始,您所要做的就是将该属性更改为不同的视图模型,并且您的视图将相应地更新


正如Metro所说,学习曲线很陡,但一旦你习惯了,它就开始有意义了:)

实际上我有一些页面工作得很好。我目前正在使用一个shell来切换视图,该shell只在其中的不同用户控件之间进行切换,但我觉得从长远来看,这会导致问题,而且我还没有在其他示例中看到使用这种方法。负责这件事的控制器是我真正挣扎的地方。我对这个项目也有很好的了解,因为我正在将一个先前存在的asp.NET网站转换成wpf桌面应用程序,所以很多后端已经完成了。