I've got a StackPanel with a group of expanders in, how do I set it so that only expander is expanded at any one time?
Cheers
AW
I've got a StackPanel with a group of expanders in, how do I set it so that only expander is expanded at any one time?
Cheers
AW
You can add a dependency property whose value is "the expander that is expanded," and then you can bind the "expanded" property to the expression "theExpandedProperty == this" using your favorite expression binding technique (type converter, etc).
I didn't really want to do it like this as it required putting code (C#) in the class behind file for the window (I'm trying to avoid this completely by use of ViewModels etc).
Ideally I would have described this in XAML.
I hooked up every Expander 'Expanded' event I was interested in and did the following:
private void HandleExpanderExpanded(object sender, RoutedEventArgs e)
{
ExpandExculsively(sender as Expander);
}
private void ExpandExculsively(Expander expander)
{
foreach (var child in findPanel.Children)
{
if (child is Expander && child != expander)
((Expander)child).IsExpanded = false;
}
}
Cheers
AWC