void updateSelection(AccordeonItem ai) { if (ai.IsSelected) { ai.IsSelected = false; SelectedItem = null; } else { if (SelectedItem != null) { AccordeonItem selectedContainer; if (IsItemItsOwnContainerOverride(SelectedItem)) { selectedContainer = SelectedItem as AccordeonItem; } else { selectedContainer = ItemContainerGenerator.ContainerFromItem(SelectedItem) as AccordeonItem; } selectedContainer.IsSelected = false; SelectedItem = null; } ai.IsSelected = true; if (IsItemItsOwnContainerOverride(ai)) { SelectedItem = ai; } else { SelectedItem = ai.DataContext; } } }
void container_HeaderClicked(object sender, AccordeonItem.HeaderClickedEventArgs e) { AccordeonItem item = sender as AccordeonItem; updateSelection(item); }