protected override void OnMouseDoubleClick(MouseButtonEventArgs e)
{
base.OnMouseDoubleClick(e);
FrameworkElement itemContent = (FrameworkElement) this.Template.FindName("headerBorder", this);
if (!itemContent.IsMouseOver)
{
// A (probably disabled) child item was really clicked, do nothing here
return;
}
if (IsKeyboardFocused && e.ChangedButton == MouseButton.Left) IsExpanded = !IsExpanded;
}