/*protected override void OnSelectionChanged(SelectionChangedEventArgs e) * { * TabExpTabItemBaseVM item = e.AddedItems[0] as TabExpTabItemBaseVM; * if (item != null && item.Expandible) * { * this._SelectedIndex = base.Items.IndexOf(item); * base.OnSelectionChanged(e); * } * else * { * base.SelectedIndex = this._SelectedIndex; * e.AddedItems.Clear(); * e.RemovedItems.Clear(); * e.Handled = true; * * base.OnSelectionChanged(e); * } * }*/ private void ToggleButtonClick(object sender, RoutedEventArgs e) { ToggleButton tog = sender as ToggleButton; TabItem tab = tog.FindFirstParentOfType <TabItem>(); if (!this.IsExpanded) { this.IsExpanded = true; tab.IsSelected = true; } else if (tab.IsSelected && this.IsExpanded) { this.IsExpanded = false; } else { tab.IsSelected = true; this.TogsList.ForEach(x => x.IsChecked = true); } e.Handled = true; }