【问题标题】:MVVM WPF Scientific application with dialogs带有对话框的 MVVM WPF 科学应用程序
【发布时间】:2012-03-28 14:41:35
【问题描述】:

我正在将现有的 C++/CLI 应用程序迁移到 C#/WPF。在编写初始应用程序时,没有进行任何设计。应用程序能够加载一个或多个图像文件(一次只能看到一个图像),还可以选择连接到显微镜并实时查看和保存图像(来自显微镜的图像显示在同一个图像框作为加载的)。然后,有很多具有不同设置的对话框。主视图上有一些按钮可以根据当前加载的图像文件和所选设置进行不同类型的计算。

有一个按钮可以将加载的图像发送到另一个具有更多功能的窗口 - 从加载的文件制作电影、计算统计数据等。

我对 C#/WPF 世界还很陌生,但我想做一个漂亮的设计。我做了一些研究,看起来 MVVM 是 WPF 中最常用的模式。现在我正在阅读有关 PRISM 的信息。我或多或少地了解 MVVM 发生了什么,但还不能将其逻辑应用于我的情况。也许我应该坚持使用 MVC?-但是关于如何将它与 WPF 一起使用的资源并不多……我找到了关于在哪里放置对话框的示例,但不知道在哪里放置我的计算……看起来好像它们不属于 M/MV/V 中的任何一个。此外,我无法理解是否只能将一个模型与多个 ViewModel 关联。

【问题讨论】:

    标签: c# wpf mvvm logic prism


    【解决方案1】:

    首先,这是一种常见的误解。

    MVVM 是一个模式,就像 MVC 一样。有各种框架可以帮助您使用 MVVM。 MVVMLight、Caliburn 就是其中的一些例子。我认为您需要了解 MVVM 是什么,然后寻找不同的实现。我个人编写了自己的基本视图模型类,这就是 MVVM

    PRISM 是一个框架,实际上它几乎与 MVVM 无关。它确实提供了INotifyPropertyChanged 实现,但仅此而已。

    PRISM 是一个大框架,学习它需要时间。这不是你今晚可以开始使用的东西。但是,它是“点菜”,这意味着您不必使用它提供的所有东西,而可以只使用您需要的东西。

    我学得越多,我就越意识到 PRISM 几乎可以解决您在开发具有繁重 UI 的大型业务应用程序时遇到的所有问题。对我来说,花在学习上的时间肯定会得到回报。

    它提供了构建大型应用程序时所需的区域、模块化、消息传递、IoC 和其他东西。看大图后,MVVM 看起来又小又简单..

    【讨论】:

    • 谢谢。我可能没有正确表达我的问题。我知道 MVVM 是一种模式,我只是不确定这是我应该使用的模式。我非常熟悉 MVC 和 C++,而不是 MVVM、C#、WPF。我开始使用 Caliburn.Micro 而不是 PRISM - 只是为了快速入门。我的问题是我应该把计算放在哪里,因为我在某处读到应用程序逻辑不属于 Model 或 ViewModel...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 1970-01-01
    • 2015-03-21
    • 2010-12-12
    • 2020-07-27
    • 2013-06-22
    相关资源
    最近更新 更多