У меня есть listbox
, который имеет свою itemSource
привязывается к collectionViewSource
что группируется и имеют 2 уровня группировок более фактические элементы:CollectionViewSource отмените SelectedItem при нажатии на имя группы
<ListBox ItemsSource="{Binding Source={StaticResource myCVS}}" ItemTemplate="{StaticResource myItemsTemplate}" ItemContainerStyle="{StaticResource myItemsStyle}" SelectedItem="{Binding SelectedListItem}" >
<ListBox.GroupStyle>
<GroupStyle ContainerStyle="{StaticResource HeaderStyle}" />
<GroupStyle ContainerStyle="{StaticResource SubHeaderStyle}" />
</ListBox.GroupStyle>
</ListBox>
С CollectionViewSource
, связанными с ObservabeleCollection
:
<CollectionViewSource x:Key="myCVS" Source="{Binding Path=myItemsToGroup}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="HeaderName" />
<PropertyGroupDescription PropertyName="SubHeaderName" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
элементы в ObservalbleCollection
выглядят как:
public class Items
{
public string GroupName;
public string SubGroupName;
public string ItemName;
}
Это все прекрасно работает я в конечном итоге с:
Header1
|_SubHeader1
|_item1
|_item2
Header2
|_SubHeader2
|_item1
|_item2
Проблема заключается в том, если я нажимаю элемент он будет выделен, и остается выбрать, если я нажимаю на заголовок или подзаголовок. Если щелкнуть заголовок, я хотел бы установить SelectedItem
в значение null. Я использую команду для удаления SelectedItem
из пользовательского интерфейса, но я не хочу, чтобы команда выполнялась, если щелкнуть заголовок или подзаголовок только при нажатии элемента.
Спасибо, это работает, мне просто нужно немного подкорректировать его. Он делает именно то, что я хочу, спасибо! – user1336827
@ пользователь1336827 хорошо. не забывайте присуждать награду, если она подходит;) – Kcvin
Возможно, вы могли бы помочь с другим битком. Элемент становится выбранным по нажатию мыши (выделено в списке) при наведении курсора вверх (на выбранном элементе) уходит. Я могу обойти это, установив прозрачный цвет фона выбранного элемента и выбралItemInactive цвет фона. И весь мой другой код все еще работает (команды), но я хотел бы визуально сохранить выделенный элемент выделенным. и только установите его равным null при щелчке по групповому типу. Есть предположения? – user1336827