예제 #1
0
        private void btnLoad_Click(object sender, EventArgs e)
        {
            List <User> users = new List <User>();

            users.Add(new User()
            {
                UserID = "1", FirstName = "John", LastName = "Wayne"
            });
            users.Add(new User()
            {
                UserID = "2", FirstName = "John", LastName = "Carter"
            });

            Dictionary <string, string> headerMap = new Dictionary <string, string>();

            headerMap.Add("UserID", "User ID");
            headerMap.Add("FirstName", "First Name");
            headerMap.Add("LastName", "Last Name");

            if (pnlGrid.Controls.Count > 0)
            {
                pnlGrid.Controls.Clear();
            }
            Control grid = new DynamicDataGrid(GetColumnDetails(typeof(User), headerMap), users);

            grid.Dock = DockStyle.Fill;
            pnlGrid.Controls.Add(grid);
        }
        internal static void Remove(DynamicDataGrid grid, object model)
        {
            var i = GetItems(grid);

            i.Remove(model);
            grid.OnPropertyChanged("SelectedItems");
        }
예제 #3
0
 public ColumnCreationInterceptorContext(PropertyInfo property, DynamicDataGrid parent, Type objectType, DataGridColumn column)
 {
     Property   = property ?? throw new ArgumentNullException(nameof(property));
     Parent     = parent ?? throw new ArgumentNullException(nameof(parent));
     ObjectType = objectType ?? throw new ArgumentNullException(nameof(objectType));
     Column     = column;
 }
        internal static Dictionary <object, bool> GetItems(DynamicDataGrid grid)
        {
            if (!CheckedItems.ContainsKey(grid))
            {
                CheckedItems.Add(grid, new Dictionary <object, bool>());
            }

            return(CheckedItems[grid]);
        }
        internal static bool IsChecked(DynamicDataGrid grid, object model)
        {
            var i = GetItems(grid);

            if (!i.ContainsKey(model))
            {
                i.Add(model, false);
            }

            return(i[model]);
        }
        internal static void SetChecked(DynamicDataGrid grid, object model, bool state)
        {
            var i = GetItems(grid);

            if (!i.ContainsKey(model))
            {
                i.Add(model, false);
            }

            i[model] = state;
            grid.OnPropertyChanged("SelectedItems");
        }
        public DataGridColumn GetColumn(PropertyInfo propertyInfo, DynamicDataGrid dataGrid)
        {
            IColumnCreationInterceptorContext column = null;

            foreach (var columnCreationInterceptor in dataGrid.ColumnCreationInterceptors)
            {
                var interceptorContext = columnCreationInterceptor.Intercept(
                    new ColumnCreationInterceptorContext(propertyInfo, dataGrid, dataGrid.ItemType, null));

                if (interceptorContext == null)
                {
                    return(null);
                }

                column = interceptorContext;
            }

            return(column?.Column);
        }
 private static IEnumerable <object> DefaultReturn(object[] value, DynamicDataGrid dynamicDataGrid)
 {
     return((value[0] as IEnumerable)?.Cast <object>()
            .Skip((dynamicDataGrid.CurrentPage - 1) * dynamicDataGrid.ItemsPerPage)
            .Take(dynamicDataGrid.ItemsPerPage));
 }