public override void OnSelected() { if (SelectedTab == null && TabItems.Any()) { SelectedTab = TabItems.First(); } SelectedTab?.OnSelected(); }
public ControllerViewModel() { var tabs = new SortedDictionary <int, ITLCGenTabItem>(); var parts = TLCGenPluginManager.Default.ApplicationParts.Concat(TLCGenPluginManager.Default.ApplicationPlugins); int plugindex = 100; foreach (var part in parts) { if ((part.Item1 & TLCGenPluginElems.TabControl) == TLCGenPluginElems.TabControl) { var attr = part.Item2.GetType().GetCustomAttribute <TLCGenTabItemAttribute>(); if (attr != null && attr.Type == TabItemTypeEnum.MainWindow) { if (attr.Index == -1) { tabs.Add(plugindex++, part.Item2 as ITLCGenTabItem); } else { tabs.Add(attr.Index, part.Item2 as ITLCGenTabItem); } } } } foreach (var tab in tabs) { TabItems.Add(tab.Value); var attr = tab.Value.GetType().GetCustomAttribute <TLCGenTabItemAttribute>(); if ((attr.Type & TabItemTypeEnum.MainWindow) == TabItemTypeEnum.MainWindow) { tab.Value.LoadTabs(); } } MessengerInstance.Register(this, new Action <NameChangedMessage>(OnNameChanged)); MessengerInstance.Register(this, new Action <UpdateTabsEnabledMessage>(OnUpdateTabsEnabled)); MessengerInstance.Register(this, new Action <IsElementIdentifierUniqueRequest>(OnIsElementIdentifierUniqueRequestReceived)); MessengerInstance.Register(this, new Action <IsFasenConflictingRequest>(OnIsFasenConflictRequestReceived)); MessengerInstance.Register(this, new Action <ControllerDataChangedMessage>(OnControllerDataChanged)); MessengerInstance.Register(this, new Action <PropertyChangedMessage <object> >(OnPropertyChangedMessageBase)); SelectedTab = TabItems?.Count > 0 ? TabItems[0] : null; }
/// <summary> /// Soft reload of the current controller: updates bound values and updates phases. /// </summary> public void ReloadController() { RaisePropertyChanged(""); SelectedTab = TabItems?.Count > 0 ? TabItems[0] : null; }