У меня есть listbox
контроль. Я создал ItemTemplate
для этого listbox
, в котором есть два элемента управления.
- Кнопка переключения
- Управление списком
Структура
<Listbox x:Key="Listbox1" ItemTemplate={StaticResource ListBox1ParentItemTemplate}>
</Listbox>
<Datatemplate x:Key="ListBox1ParentItemTemplate">
<ToggleButton></ToggleButton>
<Listbox x:Key="Listbox1" ItemTemplate={StaticResource ListBox2ParentItemTemplate}>
</Listbox>
</Datatemplate>
<Datatemplate x:Key="ListBox2ParentItemTemplate">
<TextBlock Text="{Binding Mode=Default, XPath=@Description}" TextWrapping="Wrap"/>
<CheckBox DockPanel.Dock="Right" />
</Datatemplate>
В основном Listbox2
- это CheckedListbox
. Мое требование заключается в следующем
1. Привязать ToggleButton
к Listbox1 SelectedItem
, т.е. если в Listbox1
выбрано 4 элемента, то кнопка 4-го элемента должна проверяться автоматически, а другая кнопка не должна проверяться.
2. Если установлен флажок ToggleButton
, то все флажки в Listbox2
должны быть автоматически установлены. Также, если один из флажков в Listbox2
не установлен, то ToogleButton
должен быть автоматически снят. (Эта функциональность аналогична TreeNode
и функциональности дочернего узла. Если установлен родительский узел, тогда выбираются все дочерние узлы, и если один из дочерних узлов не выбран, родительский узел должен быть не выбран).