在List
我存儲的幾個項目有頭和子項列表框 - 選擇行爲
_categories = new List<Category>();
Category cOne = new Category() { Header = "Category one" };
cOne.AddItem("Sub One");
cOne.AddItem("Sub Two");
cOne.AddItem("Sub Three");
_categories.Add(cOne);
在WPF我結合這些項目的ListBox
。
<ListBox x:Name="listbox">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Header}" />
<ListBox ItemsSource="{Binding Subs}" Padding="10 0 0 0" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我現在嘗試,但失敗是使僅在內部ListBox
點擊的項目,即要避免:
如果我設置TextBlock.IsEnabled
或TextBlock.IsHitTestVisible
假沒有什麼變化。如果StackPanel's
屬性設置爲false,則內部ListBox
不再可點擊,但有趣的是TextBlock
仍然是可以點擊的。而外部的ListBox's
屬性阻止點擊任何東西。
如果外層ListBox
改爲ListView
,則行爲相同。
我還沒有想出什麼,我需要改變,以確保只有在內部列表中的項目啓用。有任何想法嗎?
的評論@HighCore感謝。最後,這與使用IsEnabled具有相同的效果。 – Em1
您是否嘗試過使用'ItemsControl'作爲外部列表? – Niki