2009-02-13 3 views
0

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

EDIT: Инструкции 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», и нажимаю enter или tab, и курсор перемещается в следующую ячейку, а значение возвращается к исходному значению.

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

ответ

0

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

+0

Не удалось найти событие, имеющее информацию. Может получать событие для текущих изменений выбора ячейки, но ни одно событие, которое я нашел, не обеспечит событие для изменения элементов. CurrencyManager имеет событие ItemChanged, но он, похоже, не срабатывает. – davenpcj

0

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

Надеюсь, это вам поможет.

+0

* * * автоматически обновляется, но это не так. – davenpcj

0

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

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

0

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

+0

Обычно я предпочитаю писать для самой широкой аудитории. Поскольку основная поддержка закончилась в октябре 2008 года, вы, вероятно, правы. MS продолжает поддерживать .Net 1.1 до июля 2015 года. Но в то время, когда я написал вопрос, все было 1.1, и я не хотел загружать 354 МБ для 2.0 SDK. Или всю установку VS2005. – davenpcj