/// <summary> /// Añade un UserControl al TabControl según la EOpcion que recibe por param. Si el TabItem ya está mostrado, /// no se carga de nuevo, simplemente se establece el foco en ese TabItem. /// Se añade el EOpcion y el nuevo TabItem al Dictionary de TabItems(tabitemdictionary) que almacena los TabItems activos. /// </summary> /// <param name="opcion"></param> public static void PrepareTabItemUserControl(EOpcion opcion) { try { if (tabitemdictionary.Where(p => p.Key == opcion).Count() == 0) { CintaOpcionesUserControl cintaopcionesusercontrol = new CintaOpcionesUserControl(); //Se crea el Tabitem TabItem tabitem = TabItemLogic.CreateTabItemDataGrid(opcion); //Se añade un nuevo object CintaOpcionesUserControl al TabItem tabitem.Content = cintaopcionesusercontrol; //Se añade el EOpcion y el nuevo TabItem al Dictionary de TabItems(tabitemdictionary) que almacena los TabItems activos tabitemdictionary.Add(opcion, new TemplateInfoTabItem(tabitem)); //Se habilitan/deshabilitan los Buttons del ToolBar según corresponda ToolBarLogic.EnabledDisabledToolBarButtonsByEOpcion(opcion); } else { //Si el TabItem ya está mostrado, no se carga de nuevo, simplemente se establece el foco en ese TabItem tabitemdictionary.Where(z => z.Key == opcion).FirstOrDefault().Value.TabItem.Focus(); } } catch (Exception ex) { ErrorsGeneric.MessageError(ex); } }
/// <summary> /// Cierra el TabItem según la EOpcion recibida por params /// </summary> /// <param name="parameter"></param> public void CloseTabItem(object parameter) { EOpcion tipoaux = ribbonbuttondictionary.Where(z => z.Key.ToString() == parameter.ToString()).FirstOrDefault().Key; TabItemLogic.RemoveTabItem(tipoaux); }
/// <summary> /// Añade a un nuevo DataGridUserControl los datos del GenericObservableCollection (genericobscollection) recibido por params. /// El nombre de las propiedades del object del GenericObservableCollection (genericobscollection) corresponderán con los /// respectivos Headers. Se añade el DataGridUserControl en un nuevo TabItem (tbitem). /// Se añade el EOpcion, el GenericObservableCollection recibido por params (como origin y copy) y el nuevo TabItem, /// al Dictionary de TabItems(tabitemdictionary) que almacena los TabItems activos /// </summary> /// <param name="opcion"></param> /// <param name="genericobscollection"></param> private static void CreateTabItemDataGrid(EOpcion opcion, GenericObservableCollection genericobscollection) { if (genericobscollection.GenericObsCollection.Count != 0) { //Creamos el DataGrid DataGridUserControl datagrid = new DataGridUserControl(); //datagrid.HorizontalAlignment = HorizontalAlignment.Left; //datagrid.AlternatingRowBackground = Brushes.WhiteSmoke; //datagrid.AutoGenerateColumns = true; //datagrid.CanUserAddRows = true; //datagrid.CanUserDeleteRows = true; //datagrid.IsReadOnly = false; //datagrid.SelectionMode = DataGridSelectionMode.Extended; //datagrid.SelectionUnit = DataGridSelectionUnit.FullRow; //datagrid.CanUserReorderColumns = true; //datagrid.CanUserResizeColumns = true; //datagrid.CanUserResizeRows = true; //datagrid.CanUserSortColumns = true; //datagrid.FrozenColumnCount = 1; #region Se añade la ObservableCollection<object> directamente como el datagrid.ItemsSource, rellena las columnas según las propiedades que tenga el object, tenga o no tenga datos; el header será el nombre de cada propiedad del object //SetTrigger(datagrid); #endregion #region Se crean los DataGridTextColumn dinámicamente, dándole el nombre al header, y binding cada columna según establecido en la List<DBCriterios> del object; se añade cada columna individualmente al DataGrid ////Creamos los DataGridTextColumn //DataGridTextColumn column; //foreach (var item in templateinfodb) //{ // //var binding = new Binding(); // //binding.Path = new PropertyPath(item.datagridheader); // //binding.Source = (ObjectDataProvider)App.Current.FindResource("ResourceLanguage"); // column = new DataGridTextColumn(); // column.Header = item.datagridheader; //binding.Path; // column.Binding = new Binding(item.nombrepropiedadobj); // datagrid.Columns.Add(column); //} ////Añadimos los valores al Datagrid //foreach (var item in genericobscollection.GenericObsCollection) //{ // datagrid.Items.Add(item); //} #endregion //datagrid.SetBinding(ItemsControl.ItemsSourceProperty, new Binding("SelectedItem") { Source = genericobscollection }); //Se añade al DataGridUserControl el GenericObservableCollection recibido por params como ItemsSource datagrid.ItemsSource = genericobscollection.GenericObsCollection; //Se crea el Tabitem TabItem tabitem = TabItemLogic.CreateTabItemDataGrid(opcion); //Se añade el EOpcion, el GenericObservableCollection recibido por params (como origin y copy) y el nuevo TabItem, //al Dictionary de TabItems(tabitemdictionary) que almacena los TabItems activos tabitemdictionary.Add(opcion, new TemplateInfoTabItem(genericobscollection, tabitem)); //Se añade el DataGridUserControl al TabItem tabitem.Content = datagrid; //Se habilitan/deshabilitan los Buttons del ToolBar según corresponda ToolBarLogic.EnabledDisabledToolBarButtonsByEOpcion(opcion); } }