Example #1
0
        public ModelDataGridUiInfo Create(IList<DisplayPropertyInfo> editProperties, Style style)
        {
            var DataGrid = new DataGrid
            {
                Margin = new Thickness(2)
            };

            var modelUiInfo = new ModelDataGridUiInfo()
            {
                Grid = DataGrid,
            };

            try
            {
                Grid.SetRow(DataGrid, 1);

                DataGrid.BeginInit();
                DataGrid.AutoGenerateColumns = false;
                DataGrid.IsSynchronizedWithCurrentItem = true;
                DataGrid.Columns.Clear();

                // create data grid columns.

                foreach (var property in editProperties)
                {
                    if (property.IsHidden && !property.IsDependencyProperty) continue;

                    if (!property.IsDependencyProperty)
                    {
                        DataGridColumn column = ModelDataGridColumnCreator.Create(property, style);
                        DataGrid.Columns.Add(column);
                        modelUiInfo.Columns.Add(property.PropertyName, column);
                    }
                    else
                    {
                        var column = modelUiInfo.Columns[property.DependencyHostPropertyName];
                        ModelDataGridColumnCreator.CreateDependencyProperty(column, property);
                    }
                }
            }
            finally
            {
                DataGrid.EndInit();
            }

            return modelUiInfo;
        }