Это не сработало для меня, так как коллекция TableStyles
элемента управления 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);