Ошибка при добавлении строки в UltraGrid Infragistics

Я получаю эту ошибку при попытке добавить строку в UltraGrid

Недостаточно контекста для добавления новой строки. Либо строка в этой полосе, либо родительская полоса должны быть активны, чтобы обеспечить достаточный контекст.

Чтобы добавить новые строки, я использую следующую строку кода. Но дает ошибку. myGrid.DisplayLayout.Bands(0).AddNew()

Любая помощь будет оценена по достоинству.


person Pirate    schedule 10.02.2017    source источник
comment
Является ли сетка пустой (или без набора DataSource) при вызове AddNew?   -  person Steve    schedule 10.02.2017
comment
да, он пустой и нет источника данных.   -  person Pirate    schedule 10.02.2017
comment
И как вы думаете, как сетка сможет создать строку, если она не знает, какие столбцы должны отображаться?   -  person Steve    schedule 10.02.2017
comment
И что я должен делать?   -  person Pirate    schedule 10.02.2017
comment
Я определил столбцы только в коде.   -  person Pirate    schedule 10.02.2017
comment
Пожалуйста, покажите всю соответствующую часть вашего кода. Как вы определяете столбцы? В какой момент вы вызываете метод AddNew? Эм, да, нам нужно больше контекста :-)   -  person Steve    schedule 10.02.2017


Ответы (1)


Чтобы добавить UltraGrid строк во время выполнения, свойство источника данных UltraGrid должно отличаться от нуля. Таким образом, контекст источника данных знаком UltraGrid, и он добавляет новую строку на основе уже предоставленной схемы данных. В противном случае UltraGrid понятия не имеет, как должна выглядеть новая строка. Дополнительные сведения см. на следующей странице документации: Добавить строки в WinGrid программно

Private Sub Form1_Load(sender As Object, e As EventArgs)
    ' Create a table that will contain three columns
    Dim table As New DataTable("Table")

    ' Create three columns that will hold sample data
    Dim column1 As New DataColumn("Column 1", GetType(String))
    Dim column2 As New DataColumn("Column 2", GetType(Integer))
    Dim column3 As New DataColumn("Column 3", GetType(System.Drawing.Color))

    ' Add the three columns to the table.
    table.Columns.AddRange(New DataColumn() {column1, column2, column3})

    ' Assign grid's data soure to the newly created table
    Me.ultraGrid1.DataSource = table
End Sub

Private Sub ultraButton1_Click(sender As Object, e As EventArgs)
    ' Now this line of code works! 
    Me.ultraGrid1.DisplayLayout.Bands(0).AddNew()
End Sub

В качестве альтернативы, если вы хотите определить схему данных во время разработки, вы можете использовать компонент UltraDataSource и конструктор UltraGrid.

введите здесь описание изображения

person ivayle    schedule 13.02.2017