コード例 #1
0
        // These methods are not used, but they are very useful when developing the Design experience
#if Development
        /// <summary>
        ///     Adds a default column for each property in the data source
        /// </summary>
        public static void GenerateColumns(ModelItem dataGridModelItem, EditingContext context)
        {
            using (ModelEditingScope scope = dataGridModelItem.BeginEdit(Properties.Resources.Generate_Columns))
            {
                // Set databinding related properties
                DataGridDesignHelper.SparseSetValue(dataGridModelItem.Properties[MyPlatformTypes.DataGrid.AutoGenerateColumnsProperty], false);

                // Get the datasource
                object dataSource = dataGridModelItem.Properties[MyPlatformTypes.DataGrid.ItemsSourceProperty].ComputedValue;
                if (dataSource != null)
                {
                    foreach (ColumnInfo columnGenerationInfo in DataGridDesignHelper.GetColumnGenerationInfos(dataSource))
                    {
                        ModelItem dataGridColumn = null;

                        dataGridColumn = DataGridDesignHelper.CreateDefaultDataGridColumn(context, columnGenerationInfo);

                        if (dataGridColumn != null)
                        {
                            dataGridModelItem.Properties[MyPlatformTypes.DataGrid.ColumnsProperty].Collection.Add(dataGridColumn);
                        }
                    }
                }
                scope.Complete();
            }
        }
コード例 #2
0
 private void CreateColumn()
 {
     // The user may have already had a column for this property.  If so we want to restore it so any changes
     // they made will be restored.
     if (_oldColumnModelItem != null)
     {
         // bring back the properties & column that we had before.
         // pull the model properties from the column
         _restoreColumn = false;
         Column         = _oldColumnModelItem;
     }
     else
     {
         // Update the column with the model properties.
         _restoreColumn = true;
         ModelItem column = DataGridDesignHelper.CreateDefaultDataGridColumn(_parentCollection.PropertyColumnEditor.EditingContext, _columnGenerationInfo);
         if (_columnGenerationInfo.HeaderFromAttribute == null)
         {
             this.ColumnHeader = _columnGenerationInfo.PropertyInfo.Name;
         }
         Column = column;
     }
 }