我有一个TabControl,其中每个TabItem的内容都是主控细节视图。WPF在选项卡更改时维护列表框选择
对于主人,我使用的列表框的ItemsSource
绑定到我的ViewModel集合。从列表中选择一个项目可以在网格中显示特定项目的细节。
当我切换到另一个选项卡,然后回到原始选项卡时,列表框选择似乎丢失。
当选项卡选择更改时,如何维护每个选项卡中的列表框选择?
在正常使用中,最终用户需要按照他们喜欢的方式为特定情况“设置”详细视图,然后偶尔循环查看每个系统的标签(每个标签提供了机器的详细信息不同的产品线)。
的TabControl的是这样的:
<TabControl
ItemsSource="{Binding DiagCards}"
ContentTemplate="{StaticResource DiagCardViewTemplate}"
SelectedItem="{Binding SelectedDiagCard}" />
每个TabItem的视图有一个列表框,看起来像这样:
<ListBox
ItemsSource="{Binding DiagCard.DevicesDetected}"
SelectedItem="{Binding SelectedDevice}"/>
的细节使用ContentControl中显示在TabItem的:
<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"
和一切似乎很好。
当你说“列表框选择似乎丢失”,你的意思是“细节”(内容控制)没有反映正确的列表框选择或意味着列表框的选择栏根本不可见? – devuxer 2009-12-22 20:50:48
假设我选择列表中的第三个项目,然后切换到另一个选项卡。当我切换回第一个选项卡时,列表框中没有选择任何项目。我希望第三项保持选中状态。 – user158485 2009-12-22 21:43:07