void InitEntity <T>(PageTableContainer <T> container) where T : class, new() { this.lstEntities = container.entity.ToList <object>(); this.entityInstanceName = container.entityInstanceName; DataGridChanged = container.DataGridChanged; DbChanged = container.DbChanged; /* Setup the context menu. */ this.events = new List <RoutedEventHandler> { InfoMenuItem_Click, CopyMenuItem_Click, ModifyMenuItem_Click, RemoveMenuItem_Click }; this.dataGrid.ContextMenu = new ContextMenu(); ConstraintAccess(container.constraint); this.constraint = container.constraint; GetColumnNames(new T()); Context.ctx.Set <T>().Local.CollectionChanged += OnCollectionChanged; if (this.entityInstanceName == EntityInstanceNames.Campaign) { /* It's not good. */ this.btnAdd.Visibility = Visibility.Collapsed; } this.dataGrid.ItemsSource = this.lstEntities; this.dataGrid.IsReadOnly = true; this.cmbAttributes.SelectedIndex = 0; DataGridMergeVirtual += OnDataGridMergeVirtual; Unloaded += pageTable_Unloaded; }
PageTableContainer <T> InitContainer <T>(IQueryable <T> entity, string entityInstanceName) { PageTableContainer <T> container = new PageTableContainer <T> { entity = entity, entityInstanceName = entityInstanceName, DataGridChanged = DataGridChanged, DbChanged = DbChanged }; if (this.constraint.items != null) { foreach (MenuItem item in this.constraint.items) { if (item.Parent != null) { /* Detach the items from the old logical parent, to attach * it to an other data grid's context menu. */ (this.FrameMain.Content as pageTable).dataGrid.ContextMenu.Items.Clear(); break; } } } container.constraint = this.constraint = this.constraints[entityInstanceName]; return(container); }
void ConstraintAccess(ConstraintContainer c) { for (int i = 0; i < 4; i++) { if (c.flags[i]) { c.items[i].Click += this.events[i]; this.dataGrid.ContextMenu.Items.Add(c.items[i]); } } if (!c.canAdd) { this.btnAdd.Visibility = Visibility.Collapsed; } }