WPF: Поддерживать состояния путем реализации вкладок с окнами навигации?

Я делаю приложение в C# WPF, которое состоит из главного окна NavigationWindow с несколькими страницами, по которым я перемещаюсь для целей проекта. На этом этапе я хочу расширить функциональность приложения, добавив второе "состояние" программы.

Вот как я бы хотел, чтобы это работало: по сути, программа представляет собой приложение для сбора данных. На данный момент он отображает соответствующую информацию пользовательского интерфейса для базы данных A и позволяет собирать данные именно для этой базы данных. Я хочу расширить программное обеспечение, добавив второй набор элементов пользовательского интерфейса, которые собирают различные данные для базы данных B, и я хочу перемещаться между ними с помощью вкладок вверху (поэтому с помощью tabcontrol и tabitems).

Часть, на которой я застрял, это часть поддержания состояний: например, если я на вкладке для базы данных A, я могу перейти к экрану выбора даты и к экрану фактической коллекции, но если я нажму на вкладку для базы данных B он все равно вернется к экрану выбора даты, поскольку я еще ничего там не сделал (по сути, как две одновременно запущенные программы на каждой вкладке).

Я попытался посмотреть, смогу ли я изменить корневой элемент программного обеспечения с NavigationWindow на страницу, которая содержит NavigationWindow внутри tabitems (поскольку только страница реализует tabcontrol), но я не понял, как это сделать (если это вообще возможно) сделанный). Есть ли лучший способ сделать это?

1 ответ

Есть два способа сделать это:

  1. Храните информацию о состоянии за пределами содержимого вкладки. Таким образом, такие элементы, как CurrentStep, будут отслеживаться на более высоком уровне, чем содержимое TabControl.

  2. Или сделайте фальшивую вкладку. Переключение вкладок на самом деле ничего не меняет, а просто изменяет свойство в вашей ViewModel, которое определяет соединение.

Как примечание, почему бы не рассмотреть раскрывающийся список для указания базы данных вместо элемента управления вкладкой?

Другие вопросы по тегам