Как я могу переключать вкладки программно из моей ViewModel? - PullRequest
3 голосов
/ 05 сентября 2011

У меня есть настольное приложение MVVM.В моем представлении у меня есть TabControl.

. Есть ли какие-либо предложения о том, как лучше перейти на конкретную вкладку, изменив свойство в ViewModel?

Я полагаю, это можно сделать с помощьюSelectedTab, но вкладки должны существовать в ViewModel, и представление должно привязываться к списку вкладок в ViewModel.На данный момент две вкладки являются статическими, в том смысле, что я не буду создавать / удалять динамически во время выполнения.Поэтому я создаю вкладки в представлении, и они представляют два разных набора элементов управления, привязанных к одной и той же модели представления, так что это не относится к разным вкладкам для разных экземпляров модели представления.

Ответы [ 4 ]

4 голосов
/ 05 сентября 2011

Попробуйте связать со свойством SelectedIndex , чтобы переключиться на вкладку.

2 голосов
/ 06 сентября 2011

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

Тогда родительский ViewModel может активировать соответствующий дочерний ViewModel,затем активируйте правильный вид.

1 голос
/ 06 сентября 2011

Создайте свойство IsSelected на вашей модели представления, которую вы можете привязать к свойству IsSelected таблицы

0 голосов
/ 05 сентября 2011

Из MVVM ракурсов ViewModel НЕ ДОЛЖЕН быть осведомлен о деталях View, таких как TabContainer и т. Д., Поэтому для ViewModel не имеет значения, используется ли в базовом представлении элемент управления TabContainer или ListView.Поэтому рассмотрим что-то простое, например, простое IEnumerable<IRepresentationItem> Items, которое будет открыто ViewModel, а затем привязано к контейнеру элементов пользовательского интерфейса базового представления.

И, очевидно, предоставит свойство SelectedItemIndex, которое может быть связано с соответствующим индексом SelectedTab / SelectedItemКонтейнер элементов пользовательского интерфейса.

...