2012-03-16 3 views
0

Я работаю над приложением .NET Compact Framework 3.5, которое включает DataGrid. Я создал BindingSource, используя конструктор, и добавил источник привязки в качестве источника datagrid. Он автоматически создает столбцы для каждого подходящего свойства моего исходного типа объекта, но я не хочу отображать все свойства.Как выбрать отображаемые столбцы в datagrid

Как указать, какие столбцы отображать, а какие - скрывать? Я попытался сыграть с свойством TableStyles в datagrid (как в коде, так и в дизайнере), похоже, не имел никакого эффекта.

+0

Это для управления DataGridView? – jp2code

+0

Нет, .NET CF 3.5 DataGrid. –

ответ

1

Выяснил это. Я должен добавить следующую строку кода в конструкторе формы, сразу после InitializeComponent():

myDataGrid.TableStyles[0].MappingName = myBindingSource.GetListName(null); 

Тогда я был в состоянии изменить TableStyles свойство DataGrid для того чтобы изменить отображаемые столбцы, как я, пожалуйста.

3

Это не сработало для меня, поскольку коллекция DataGrid была пуста в указанной вами точке и остается такой, пока не будет добавлена ​​коллекция DataGridTableStyle.

Использования предложений для установки правильного значения для MappingName собственности, я достиг желаемого результата путем создания и добавления нового DataGridTableStyle объекта, содержащего только открытых поля, которые необходимы в DataGrid.

// Create a DataGridTableStyle to hold all the columns to be displayed in the DataGrid 
DataGridTableStyle myTableStyle = new DataGridTableStyle(); 
myTableStyle.MappingName = myBindingSource.GetListName(null); // This is the magic line 
myTableStyle.GridColumnStyles.Clear(); 

// Add some DataGridColumnStyles 
DataGridTextBoxColumn columnRowId = new DataGridTextBoxColumn(); 
columnRowId.MappingName = "idx"; //This must match the name of the public property 
ColumnRowId.HeaderText = "Record"; 
tableStyleReportsSummary.GridColumnStyles.Add(columnRowId); 

// Add the table style to the DataGrid 
myDataGrid.TableStyles.Clear(); 
myDataGrid.TableStyles.Add(myTableStyle); 
Смежные вопросы