У меня есть TabControl, где содержимое каждого TabItem является представлением мастер-данных.WPF Поддерживает выбор ListBox при изменении вкладок
Для мастера я использую список, чей номер ItemsSource
связан с коллекцией в моей модели ViewModel. Выбор элемента из списка отображает детали конкретного элемента в сетке в сторону.
Когда я переключаюсь на другую вкладку, а затем обратно на вкладку оригинала, выбор списка выглядит потерянным.
Что можно сделать для сохранения выбора списка на каждой вкладке при изменении выбора вкладки?
Для нормального использования конечным пользователям необходимо «настроить» подробные представления так, как им нравится в конкретной ситуации, а затем периодически перебирать вкладки для проверки каждой системы (каждая вкладка предоставляет детали для машин на другая производственная линия).
TabControl выглядит следующим образом:
<TabControl
ItemsSource="{Binding DiagCards}"
ContentTemplate="{StaticResource DiagCardViewTemplate}"
SelectedItem="{Binding SelectedDiagCard}" />
The View для каждого 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>
Update: Я поставил IsSynchronizedWithCurrentItem="True"
на ListBox и все, кажется, хорошо.
Когда вы говорите, что выбор списка выглядит потерянным, вы имеете в виду, что «деталь» (элемент управления содержимым) не отражает правильный выбор списка или означает, что панель выбора списка просто не видна? – devuxer
Предположим, что я выбираю третий элемент в списке, а затем переключаюсь на другую вкладку. Когда я вернусь к первой вкладке, в списке ничего не будет выбрано. Я хочу, чтобы 3-й элемент оставался выбранным. – user158485