Правильно привязать сетку данных Windows Forms к массиву - PullRequest
0 голосов
/ 13 февраля 2009

Я пытаюсь использовать сетку данных форм Windows (.NET 1.1) для обновления элементов двумерного массива. Используя документацию Microsoft, я смог заставить таблицу данных правильно отображать массив.

РЕДАКТИРОВАТЬ: MS инструкции, которые я следовал на http://support.microsoft.com/kb/315786.

class myrow {
   private int a, b;
   public int A {get { return a; } set {a = value;}}
   public int B {get { return b; } set {b = value;}}
}

myrow[] myRows = new myrow[5] {
    new myrow(3,2),
    new myrow(2,2),
    new myrow(1,2),
    new myrow(3,3),
    new myrow(3,1),
}

myDataGrid.SetDataBinding(myRows, "");

У меня также есть свойство TableStyle.MappingName объекта DataGrid, установленное на "myrow[]".

Что сводит меня с ума, так это то, что я не могу обновить его. Я ввожу новое значение в ячейку формы, скажем «1123», и нажимаю клавишу ввода или табуляцию, и курсор перемещается к следующей ячейке, а значение возвращается к исходному значению.

Как я могу получить обновления?

Ответы [ 4 ]

0 голосов
/ 25 октября 2009

С макушки головы, я думаю, тебе нужно ... Обновите до последней версии Visual Studio.

0 голосов
/ 13 февраля 2009

К сожалению, я не могу проверить это для .NET 1.1, но что касается элемента управления .NET 2.0 DataGridView, который заменил DataGrid, нет необходимости обновлять источник данных вручную.

Надеюсь, это вам как-нибудь поможет.

0 голосов
/ 13 февраля 2009

Есть обходной путь, если вы измените массив на ArrayList или другой класс коллекции, тогда обновления сработают.

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

0 голосов
/ 13 февраля 2009

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

...