MVVM WPF Научное приложение с диалогами - PullRequest
0 голосов
/ 28 марта 2012

Я перемещаю существующее приложение C ++ / CLI в C # / WPF.Когда первоначальное заявление было написано, никакого дизайна не было сделано вообще.Приложение имеет возможность загружать один или несколько файлов изображений (одновременно видно только одно изображение), также есть возможность подключиться к микроскопу и просматривать и сохранять изображения в режиме реального времени (изображения с микроскопа отображаются в одном окне изображения).как загруженные).Тогда есть много диалогов с различными настройками.На главном экране имеются кнопки для выполнения различных видов вычислений на основе загруженных в данный момент файлов изображений и выбранных настроек.

Есть кнопка для отправки изображений, загруженных в другое окно, которое имеет больше функций - делает фильм из загруженногофайлы, подсчет статистики и т. д.

Я довольно новичок в мире C # / WPF, но хочу сделать хороший дизайн.Я провел некоторое исследование, и похоже, что MVVM - это шаблон, который в основном используется в WPF.Сейчас я читаю о ПРИЗМЕ.Я более или менее понимаю, что происходит с MVVM, но пока не могу применить его логику к моей ситуации.Может быть, я должен придерживаться MVC? - но не так уж много информации о том, как использовать его с WPF ... Я нашел примеры того, куда помещать диалоги, но не знаю, куда поместить мои вычисления ... выглядиткак будто они не принадлежат ни одному из M / MV / V.Кроме того, я не могу понять, могу ли я иметь только одну модель, связанную со многими моделями представления.

1 Ответ

1 голос
/ 29 марта 2012

Прежде всего, это распространенное недоразумение.

MVVM - это шаблон , как и MVC.Существуют различные рамки, которые помогут вам с MVVM.MVVMLight, Caliburn - некоторые из примеров.Я думаю, вам нужно узнать, что такое MVVM, а затем искать различные реализации.Лично я написал свой собственный базовый класс View Model, и это все для MVVM

PRISM - это фреймворк, и на самом деле он почти не имеет ничего общего с MVVM.Он обеспечивает реализацию INotifyPropertyChanged, но это все.

PRISM - это большой фреймворк, для его изучения требуется время.Это не то, что вы можете начать использовать сегодня вечером.Тем не менее, это «а-ля тележка», что означает, что вам не нужно использовать все, что он предоставляет, и вы можете использовать только то, что вам нужно.

Чем больше я узнаю, тем больше понимаю, что PRISM решает почти всепроблемы, которые у вас возникнут при разработке приложений для большого бизнеса с тяжелым пользовательским интерфейсом.Для меня время, потраченное на обучение, определенно окупается.

Он предоставляет регионы, модульность, обмен сообщениями, IoC и другие вещи, которые необходимы при создании большого приложения.MVVM выглядит крошечным и легким после того, как вы видите большую картинку ..

...