У меня есть TabControl, где содержимое каждого TabItem представляет собой представление основных данных.
Для мастера я использую список, чье ItemsSource
связано с коллекцией в моей ViewModel. При выборе элемента из списка детали этого конкретного элемента отображаются в виде сетки в сторону.
Когда я переключаюсь на другую вкладку и затем возвращаюсь к исходной вкладке, выбор списка кажется потерянным.
Что можно сделать, чтобы сохранить выбор списка в каждой вкладке при изменении выбора вкладки?
При обычном использовании конечные пользователи должны будут «настраивать» подробные представления так, как им нравится в конкретной ситуации, а затем периодически переключаться между вкладками, чтобы проверить каждую систему (каждая вкладка содержит сведения о оборудовании на разных линия продуктов).
TabControl выглядит так:
<TabControl
ItemsSource="{Binding DiagCards}"
ContentTemplate="{StaticResource DiagCardViewTemplate}"
SelectedItem="{Binding SelectedDiagCard}" />
Представление для каждого TabItem имеет ListBox, который выглядит следующим образом:
<ListBox
ItemsSource="{Binding DiagCard.DevicesDetected}"
SelectedItem="{Binding SelectedDevice}"/>
Детали отображаются в TabItem с помощью ContentControl:
<ContentControl
Content="{Binding SelectedDevice}"
ContentTemplateSelector="{StaticResource SelectedDeviceTemplateSelector}"/>
Следует отметить, что простой тест с использованием жестко закодированных TabItems и ListBoxes делает , кажется, поддерживает выбор при изменении вкладки:
<TabControl>
<TabItem Header="tab 1">
<ListBox>
<ListBoxItem>
<TextBlock Text="item 1-1"/>
</ListBoxItem>
<ListBoxItem>
<TextBlock Text="item 1-2"/>
</ListBoxItem>
</ListBox>
</TabItem>
<TabItem Header="tab 2">
<ListBox>
<ListBoxItem>
<TextBlock Text="item 2-1"/>
</ListBoxItem>
<ListBoxItem>
<TextBlock Text="item 2-2"/>
</ListBoxItem>
</ListBox>
</TabItem>
</TabControl>
Обновление : я установил IsSynchronizedWithCurrentItem="True"
в списке, и все вроде бы хорошо.