WPF Как разработать многооконное приложение? - PullRequest
1 голос
/ 17 сентября 2010

Я ищу несколько советов и подсказок, как я могу правильно построить свое приложение.

Итак, вот некоторая информация: на данный момент у меня есть главное окно с сеткой, которая содержит 4 кадра. это выглядит так.

menu

Вверху находится меню, которое позволяет выбирать разные страницы. У меня есть для основной области около 8 страниц, например. страница настроек и 4 страницы контента. На боковой панели отображается некоторая дополнительная информация, которую может выбрать пользователь, а в нижней части отображается только страница, когда открыта 1 из страниц содержимого. Так что мои страницы контента имеют ViewModel позади, чтобы заполнить их, и я пытаюсь использовать команды в ближайшем будущем, когда я пойму все их функции;). Поэтому я пытаюсь использовать MVVM, но я очень новичок в этом.

Мне на самом деле не нужно навигационное меню, как оно отображается в окнах навигации.

Так что для приложения, подобного этому, лучше всего использовать Frames или есть какие-то лучшие решения?

1 Ответ

1 голос
/ 18 сентября 2010

Фреймы поддерживают встроенную навигационную инфраструктуру WPF, поэтому они являются хорошим выбором, если вы планируете использовать это. У него есть некоторые проблемы (по крайней мере, некоторые люди думают так, в том числе и я), но для простых / небольших приложений это будет хорошо. Конечно, они также будут работать, если вы захотите запустить собственную легкую навигационную систему, как я обычно это делаю. Я обычно перемещаюсь, отправляя экземпляры ViewModels вокруг и устанавливая их как содержимое окон или элементов управления содержимым, и позволяя DataTemplates «одевать» их так, как они определены в представлениях. Для более крупных проектов я бы всегда рекомендовал одну из замечательных платформ, которая включает навигационные системы, такие как Prism или Magellan.

В основном все зависит от ваших требований; Есть много способов сделать это правильно. Хорошо, что вы пытаетесь использовать MVVM, старайтесь придерживаться этого, и это, как правило, автоматически направит вас в правильном направлении.

Я бы предложил использовать док-библиотеку, такую ​​как AvalonDock, чтобы немного оживить ваше приложение ... однако у меня есть горький опыт с этим, так как он не MVVM-дружественный. Недавно я провел большую часть недели, борясь с ним, чтобы сделать его достаточно полезным в сценарии MVVM, и я не уверен, что это когда-либо будет возможно. Могут быть и другие библиотеки, которые лучше справляются со своими задачами, но (полнофункциональный, как в Visual Studio) стыковка - сложная задача, поэтому, возможно, не идите туда. Извините, я, вероятно, почувствовал необходимость дать выход после разочарования AvalonDock.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...