public static void OnSelectedItemChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { AdvDocumentGroup dGroup = sender as AdvDocumentGroup; WorkPlaceViewModelBase vm = null; int tabIndex = -1; if (e.NewValue == null) { if (dGroup.Items.Count > 0) { tabIndex = 0; } } else { foreach (var item in dGroup.Items) { vm = item.DataContext as WorkPlaceViewModelBase; if (vm != null) { if (vm == e.NewValue) { tabIndex = dGroup.Items.IndexOf(item); break; } } } } if (dGroup.SelectedTabIndex != tabIndex) { dGroup.SelectedTabIndex = tabIndex; } }
void AdvDocumentGroup_SelectedItemChanged(object sender, DevExpress.Xpf.Docking.Base.SelectedItemChangedEventArgs e) { WorkPlaceViewModelBase vm = null; if (this.SelectedTabIndex >= 0) { BaseLayoutItem item = this.Items[this.SelectedTabIndex]; vm = item.DataContext as WorkPlaceViewModelBase; } if (SelectedItem != vm) { SelectedItem = vm; } }
private void DocManager_OnDockItemClosing(object sender, ItemCancelEventArgs e) { var layout = sender as DevExpress.Xpf.Docking.DockLayoutManager; if (layout == null || layout.ActiveDockItem == null) { return; } var uniqueId = layout.ActiveDockItem.Caption; var context = layout.DataContext as MainViewModel; if (context == null) { return; } if (context.WorkPlaceList.Any(x => x.DisplayName.Equals(uniqueId))) { WorkPlaceViewModelBase configPanel = context.WorkPlaceList.First(x => x.DisplayName.Equals(uniqueId)); configPanel.Close(); } }