Различные «представления» в одном окне WPF - PullRequest
1 голос
/ 11 октября 2010

Я изучаю VB.Net в университете, и основной задачей является создание приложения WPF.

Приложение ориентировано на управление (добавление, изменение, удаление записей и т. Д.).Поскольку это все довольно разрозненные задачи, я думаю создать интерфейс с вкладками для моего задания (аналогично интерфейсу Spybot: http://www.2 -spyware.com / images / data_images / spybot-search-and-destroy1.jpg ).

Я немного озадачен тем, как мне подходить к этому?Кстати, будет ли это классифицироваться как MDI?

Нам было рекомендовано создать систему меню, в которой перечислены все опции - при выборе опции будет открыто новое окно, будет происходить взаимодействие.Если пользователь захочет сделать что-то еще, он закроет окно, чтобы вернуться к экрану меню.

Это на самом деле не выглядит элегантным подходом для меня, и кажется, что это будетя объяснил интересное упражнение по внедрению системы на основе вкладок.

Буду признателен, если кто-нибудь укажет мне правильные указания или подскажет, как мне следует достичь.Можно ли, например, создать каждую опцию в отдельном файле xaml / code-behind, а затем «вставить» их в каждую вкладку?

edit: Чтобы уточнить, давайте возьмем гипотетическую идею внутренней футбольной командысистема управления.Допустим, есть пять различных задач, которые пользователь может выполнять: «Зарегистрировать игрока», «Изменить игроков», «Зарегистрировать команду», «Изменить данные команды», «Добавить игрока в команду».

Каждая задачаотдельно от следующего.Одним из способов создания приложения является создание главной страницы с кнопкой для каждой задачи.Когда пользователь нажимает на каждую кнопку, открывается новое окно (например, если пользователь нажимает «Зарегистрировать игрока», открывается новое окно PlayerRegistration).

Что я ищу, как уже упоминалосьвыше, это подход на основе вкладок.В моем приложении, если пользователь нажимает «Зарегистрировать игрока», весь xaml-файл PlayerRegistration загружается в сегмент окна.То же самое происходит, когда пользователь нажимает любую другую кнопку.

Я полагаю, что одним из способов думать об этом будет веб-сайт, использующий фреймы.

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

Ответы [ 2 ]

4 голосов
/ 11 октября 2010

Вы слышали о паттерне MVVM? Посмотрите на эту статью Джоша Смита , пример, который он использует, делает нечто похожее на то, что вы хотите.

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

1 голос
/ 11 октября 2010

Вы можете взглянуть на разработку составных приложений, моно надстройки (можете использовать это для архитектуры плагинов) в сочетании с оболочкой.

...