【发布时间】:2010-08-29 23:33:51
【问题描述】:
我将很快开始一个新项目,并正在向那些有 WPF、Prism 和 MVVM 经验的人寻求一些架构建议。
该项目肯定是 WPF,我将实施 MVVM(我可能会使用 Josh Smith 的 MVVM 基金会作为起点),以便能够从 UI/逻辑等分离中受益。但我不确定如果我也能从使用 Prism 来构建我的项目中受益的话。
让我简要介绍一下这个项目。将有一个主要的“工具栏”,它将显示许多小部件。每个小部件都会显示一些与其功能相关的基本数据,单击小部件将打开一个新窗口,该窗口将显示更详细的数据并包含用于查看/编辑数据的丰富 UI。
现在,我在想我可以使用 Prism 来构建项目,但我以前从未使用过它,并且不确定它是否适合我想要实现的目标。例如,我的“工具栏”会是一个外壳,其中包含每个小部件将填充的区域吗?单击小部件时显示的每个新窗口是否也是具有自己区域设置的自己的外壳?如果我可以为工具栏和工具栏上的一个小部件获取模式,我可以为其余小部件复制它。
除了 Prism 之外,我还有一个关于如何为某些数据编辑窗口实现 MVVM 的问题。假设我有一个显示一些数据的图表,用户可以直接在图表上单击/鼠标移动来编辑他看到的数据。所有数据都在模型中,视图模型通过绑定使这些数据可用于视图。我的问题是,特定于该视图中图表的鼠标单击/移动事件将被写入何处?我们不想在视图的代码中包含太多/任何东西,我们不想在视图模型中有 UI 事件处理程序,所以我不确定如何处理这种类型的场景。我知道命令是可能的答案,但我看到的 MVVM 示例通常显示简单按钮单击的示例命令。大意是一样的吗?
所以,如果有人对上述内容有任何建议或任何有关使用 WPF 和 MVVM/Prism 的一般提示,请告诉我。
谢谢。
【问题讨论】:
-
这篇文章使用 MEF 而不是 Prism,但是在处理 IoC 的东西时有一些关于 WPF 和 MVVM 的有趣想法:codeproject.com/KB/WPF/SoapBoxCorePinBallDemo.aspx