2012-03-28 50 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