На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: maxim84_
  
> 2D массивы в DataGrid
    Обещанный пример...
    Объясню в нескольких словах смысл:
    В проекте есть класс Matrix - этот класс представляет собой двумерный динамический массив, в который просто добавить или удалить столбец или строку. Вобщем с ним проще работать чем со стандартным .NET массивом. Идея примера в том, чтобы отобразить этот массив через DataGrid. Как известно DataGrid работает только с одномернымии массивами. При этом объект, который присваетвается в св-во DataGrid.DataSource, должен быть наследоваться от IList или IListSource. Соответственно, если загрузить в DataGrid массив объектов одного типа, то их св-ва (properties) он представит как колонки.
    Список св-в DataGrid, также как и PropertyGrid , берет через класс, порожденный от ICustomTypeDescriptor. Если обмануть DataGrid и представить ему матрицу в виде одномерного массива объектов (строки матрицы), где в каждой строке колонки будут представлены в виде свойств с названиями 1, 2, 3, и т.д., тогда DataGrid легко сможет отобразить двумерную матрицу и сам создаст колонки с заголовками 1, 2, 3, и т.д. Класс Matrix порожден от интерфейса IListSource, который предоставляет DataGrid\'y одномерный список (MatrixView) объектов RowDescription. Класс RowDescription порожден от интерфейса ICustomTypeDescription и предоставляет список и описание своих свойств, через объекты ColumnDescription. Каждый такой объект, представляет колонку матрицы в виде св-ва обычного класса. За счет такого подхода, не нужно инициализировать колонки в DataGrid\'e и есть возможность отображать в нем двумерные массивы. В классе MainFrame, метод InitializeMatrix вы увидите инициализацию объекта DataGrid. В архиве Windows Application проект для Visual Studio.NET 7.1
    Прикреплённый файлПрикреплённый файл (20.51 Кбайт, скачиваний: 217)
    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script execution time: 0,0217 ]   [ 15 queries used ]   [ Generated: 26.04.24, 03:18 GMT ]