コード例 #1
0
 public override void OnSelected()
 {
     if (SelectedTab == null && TabItems.Any())
     {
         SelectedTab = TabItems.First();
     }
     SelectedTab?.OnSelected();
 }
コード例 #2
0
        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;
        }
コード例 #3
0
 /// <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;
 }