Если ваши элементы списка содержат только флажки, вы можете заставить эти CheckBox
es занимать всю ширину элемента:
<CheckBox
Width="{Binding ActualWidth, RelativeSource={RelativeSource FindAncestor, AncestorType=ListBoxItem}}"/>
Если ваши элементы списка также содержат некоторые другие элементы, все становится сложнее.
Вы можете, например, свяжите свойство IsSelected
каждого ListBoxItem
со свойством элемента данных IsSelected
:
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="IsSelected" Value="{Binding IsSelected}"/>
</Style>
</ListBox.ItemContainerStyle>
Затем вы сможете установить флажки, выбрав элементы в списке. Однако отмеченные элементы также будут в выбранном состоянии.
Если вам это не нравится или не нужно, вы можете удалить визуальный стиль выделения:
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="IsSelected" Value="{Binding IsSelected}"/>
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" />
</Style.Resources>
</Style>
</ListBox.ItemContainerStyle>