Если вам нужен ItemsControl
без ListBox
функций, за исключением того, что он внутренне поддерживает концепцию выбора, вы можете легко создать безликий ListBox
, который неотличим от ItemsControl
.Вот два два рядом, и вы не можете сказать разницу.Единственное отличие состоит в том, что левый список поддерживает внутренний выбор.
<Grid>
<Grid.Resources>
<x:Array Type="sys:String" x:Key="sampleData">
<sys:String>Red</sys:String>
<sys:String>Green</sys:String>
<sys:String>Blue</sys:String>
</x:Array>
</Grid.Resources>
<UniformGrid Columns="2">
<ItemsControl ItemsSource="{StaticResource sampleData}"/>
<ListBox ItemsSource="{StaticResource sampleData}">
<ListBox.Style>
<Style TargetType="ListBox">
<Setter Property="Focusable" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBox">
<ItemsPresenter/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Style>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Focusable" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<ContentPresenter/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</UniformGrid>
</Grid>
Так что лучший совет - если вы хотите выбрать, извлекайте из ListBox
и выделяйте то, что вам не нужно или, по крайней мере,происходят от Selector
.