Шаг 138 - DataGrid и DataGridColumnStyle

В прошлых шагах вы отображали данные с помощью DataGrid, но к сожалению у меня тогда был SDK 1, но после установки SDK 2 я увидел, что мои примеры не работают, разобравшись я понял, что ребята из микрософт изменили почти полностью DataGrid. И так рассмотрим, что нужно сделать чтобы всё работало со вторым SDK(не знаю правда, что будет при релизе).

Теперь для отображения данных в таблице нужно использовать стили. В таблице есть коллекция TableStyles в которой содержаться стили(но если просто забиндить DataSet, то получится просто обычная табличка и с ней потом долго мучится надо, чтобы всё нормально отобразить). Попробуем сначала создать стиль.

DataGridTableStyle ts1 = new DataGridTableStyle();

Теперь нам нужно указать, что он применятся к таблице Customers

ts1.MappingName = "Customers";

Попробуем теперь откомпилировать проект и посмотреть, что у нас получится. Мы увидим просто пустую табличку, это всё потому что мы не добавили к стилю, стиль отображения столбца. Создадим сперва стиль столбца. Они бывают разных типов и оба они наследуются от абстрактного класса DataGridColumnStyle.

DataGridTextBoxColumn gc1 = new DataGridTextBoxColumn();
ts1.GridColumnStyles.Add(gc1);
gc1.MappingName = "Name";
gc1.HeaderText = "Покупатель";

В поле MappingName указываем имя столбца которое мы хотим отображать. Теперь у нас всё выводится как надо. И для DataSet нужно поле EnforceConstraints установить в false, иначе при восстановлении данных после удаления возникнет ошибка из-за целостности.

myDataSet.EnforceConstraints = false;

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Leonid Molochniy - 23.10.2001