2012-03-28 53 views
0

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

有一个按钮,发送加载到具有更多的功能,另一个窗口的图像 - 让电影从加载文件,计算统计等

我是相当新的C#/ WPF世界,而是想使一个不错的设计。我做了一些研究,看起来MVVM是WPF中最常用的模式。现在我正在阅读关于棱镜。我或多或少地理解了MVVM发生了什么,但不能将其逻辑用于我的情况。可能是我应该坚持MVC? - 但没有太多的关于如何使用它的WPF的resorces ...我找到了哪里放对话的例子,但不知道在哪里把我的计算...看起来就像他们不属于M/MV/V中的任何一个一样。此外,我不明白,如果我只有一个模型与许多ViewModels相关联。

回答

1

首先,这是常见的误解。

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

PRISM是一个框架,实际上它几乎与MVVM无关。它确实提供了INotifyPropertyChanged的实现,但这就是它。

PRISM是一个很大的框架,它需要时间来学习它。这不是你今晚可以开始使用的东西。然而,它是“一辆购物车”,这意味着你不必使用它提供的所有东西,只能使用你需要的东西。

我学得越多,我越发现PRISM解决了用大量用户界面开发大型商业应用程序时所遇到的几乎所有问题。对我而言,投入学习的时间肯定会得到回报。

它提供地区,模块化,消息传递,IoC和其他你需要建立大型应用程序的东西。在你看到更大的图片后,MVVM看起来很小并且很容易..

+0

谢谢。我可能没有正确地说出我的问题。我知道MVVM是一种模式,我只是不确定这是一种我应该使用的模式。我非常熟悉MVC和C++,而不是MVVM,C#,WPF。我开始使用Caliburn.Micro而不是PRISM - 只是为了快速入门。我的问题是关于应该在哪里进行计算,因为我在某处读取了应用程序逻辑不属于Model或ViewModel的地方...... – user1298416 2012-04-02 23:50:13