Exemple #1
0
 private void Navigate(Panels type) // Метод, который выполняет процедуру навигации между панелями
 {
     // Если есть неоткреплённая панель, её необходимо откремить от панели-контейнера
     if (active != null && ContentPanel.Controls.Contains(active.GetMainPanel()))
     {
         active.Dettach();
     }
     // Приклепление новой панели к контейнеру
     active = panels[type];
     active.Attach();
 }
 public static void AddViewToContentPanel <T>(IRibbonButtonInfo viewInfo, IContentPanel panel, Func <T, bool> predicate)
 {
     if (panel.IsLoaded())
     {
         bool shouldCreate = true;
         var  enumerator   = panel.GetEnumerator();
         try
         {
             while (enumerator.MoveNext())
             {
                 if (predicate((T)enumerator.Current))
                 {
                     shouldCreate = false;
                     break;
                 }
             }
         }
         finally
         {
             enumerator = null;
         }
         if (shouldCreate)
         {
             try
             {
                 var view = panel.GetView(viewInfo);
                 if (view != null)
                 {
                     if (view is IView seed)
                     {
                         seed.ID = viewInfo.ID;
                     }
                     panel.Add(panel.NewItem(viewInfo, view));
                 }
             }
             catch (Exception ex)
             {
                 mLogger.Warn($"Error while invoking addin:{viewInfo.Name}, type:{viewInfo.Type}, assembly:{viewInfo.Assembly}, due to:{ex}");
             }
         }
     }
 }