Как лучше всего реализовать навигацию по страницам с помощью WPF и C#? [закрыто]C#

Место общения программистов C#
Ответить
Anonymous
 Как лучше всего реализовать навигацию по страницам с помощью WPF и C#? [закрыто]

Сообщение Anonymous »

Я разработал приложение с окном под названием MainScreenWindow и тремя , а именно: Изначально, когда загружается MainScreenWindow, я сразу загружаю начальные UsersControls, например:

Код: Выделить всё

MenuContentControl.Content = new MenuControl(this);

HeaderContentControl.Content = new HeaderControl("MY MODEL CONFIGURATION", this);

MainContentControl.Content = new HomeControl(this);
В моем случае обратите внимание, что я передаю экземпляр MainScreenWindow в каждый из пользовательских элементов управления.
Причина ? Внутри каждого UserControl может быть * (как в случае с MenuControl*), который должен открывать новые экраны внутри MainContentControl.
И как это работает? Все просто, если предположить, что в моем MenuControl у меня есть кнопка "Настройки", при нажатии на которую выполняется команда (

Код: Выделить всё

ICommand
), который, в свою очередь, выполняет функцию в моей ViewModel, которая, наконец, вызывает существующий метод в моем MainScreenWindow, который отвечает за изменение существующего содержимого в MainContentControl.
Например:

Код: Выделить всё

//The Method that will be called by my ICommand Class:
public void OpenControl(T control) where T : UserControl
{
//control can be NotesControl, HomeControl, SettingsControl, depending on the button that was clicked...
mainScreenWindow.changeMainContentControl(control);
}
Внутри моего MainScreenWindow у меня есть метод, называемый ChangeMainContentControl(), который получает общий UserControl и который будет обновлено в моем MainContentControl:

Код: Выделить всё

public void changeMainContentControl(T control) where T : UserControl
{
MainContentControl.Content = control;
changeHeaderContentControl(control);
}
Метод ChangeHeaderContentControl() отвечает только за обновление информации в моем HeaderContentControl, чтобы сообщить пользователю, на каком экране он находится:

Код: Выделить всё

HeaderContentControl.Content = new HeaderControl(ReturnHeaderConfiguration.ReturnConfiguration(control.GetType().Name), this);
Во всяком случае, на данный момент мой код работает очень хорошо, и кажется, что в приложении нет утечек памяти.
Однако, поскольку я Я новичок в WPF, мне хотелось бы знать, является ли используемая архитектура лучшей. А если нет, то как я могу его улучшить?
Кроме того, я считаю, что при вызове метода ChangeMainContentControl() старые элементы управления UserControls удаляются из памяти, верно?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -wpf-and-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»