prism项目搭建 wpf_新WPF项目的Prism和MVVM

这里有几个问题,所以我会尽我最大的努力把它们都包括进去。

我在一个项目中工作,这个项目在其他框架的旁边有wpf、mvvvm和prism。最好的建议是在把它们粘在一起之前,先了解它们的力量和功能。在这种情况下,您不必使用棱镜的所有功能。

对于棱镜,你可以使用…

shell和引导程序初始化应用程序并从其他程序集加载模块。

为依赖注入创建和配置Unity。您可以使用其他DI容器。在这里,您可以添加每个模块将使用的全局服务。

使用事件聚合器通知应用程序的不同部分,通常跨模块和视图

用于在UI上命名区域的区域,以便模块可以将视图添加到特定位置。

上述4不必全部使用,但可以很容易地集成到MVVM/WPF应用程序中。

例如,我的“工具栏”是否是

包含每个区域的外壳

小部件将填充?

在这里,您可以创建一个区域(可以从区域派生),用于管理工具栏上的按钮。(我用了一个关于丝带的区域)。服务可以通过一个接口公开,每个模块都可以提供命令/图像(无论您拥有什么),当单击它时,将创建一个视图模型。您可以在模块初始化过程中执行此操作。

每个新窗口

单击小部件时显示

也要有自己的外壳

区域设置?

如果每个按钮都打开一个全新的窗口,我建议引入一个公共控制器类,该类将创建一个通用的使用窗口,并附加一个模块创建的视图模型。在这种情况下,不需要真正使用区域,除非您将不同的视图粘贴到一个比视图本身的使用寿命长的应用程序窗口中。基本形式的窗口可以是…

在你的控制器里,它能做到…

public void DisplayView(ViewModel vm)

{

var window = new MyWindow { DataContext = vm };

window.Show();

}

控制器可以直接在模块中使用,也可以包装在服务中…尽管对于可测试性来说,服务和接口是最好的。确保已将模块资源与

Applicaiton.Resources

使用

DataTemplate

将视图链接到视图模型。

我的问题是老鼠在哪里

单击/移动特定事件

在那个视图中的图表上写下?

不要害怕代码隐藏,但在这种情况下可以使用

EventToCommand

将路由到ViewModel上的命令的附加行为。

MVVMLight

工具箱中有这个工具,您可以根据需要重用它。

DI非常强大,我鼓励即使不使用棱镜也使用它,因为构建视图模型会更容易。

高温高压

你可能感兴趣的:(prism项目搭建,wpf)