我有一個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