コード例 #1
0
        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;
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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;
            }
        }