Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Datagrid для дебилов


Автор: Enelar 25.9.2011, 16:48
Подскажите пожалуйста.
Есть DataSet у DataGridView1, запрещенного на редактирование.
Задача следующая - загрузить из xml фаила (ReadXml), как то изменить, и сохранить в него.
Изменить это найти в интернете xml, пропарсить, ища нужные параметры, добавить.
Если пользователь нажмет на первую ячейку - удалить.

Но после привязки, при добавлении новых строк выпадает эксепшен
"Строки нельзя программным способом добавить в коллекцию строк DataGridView, если элемент управления привязан к данным."
Нормальных методов для данных операций через DataSet я не нашел... подскажете?

Код

            dataGridView1.Rows.Add(1);
            dataGridView1.Rows[1].Cells["name"].Value = "hello";
            dataGridView1.Refresh();


И еще вопрос, есть ли удобные методы работы с xml?
К примеру
dest.Rows[1].Cells["name"].Value = source.Rows[1].Cells["clientName"].Value;
где дест это датагрид, а source это xml данные хранящиеся так или иначе(как подскажете).
Генерировать запрос, получать html ответ и вырезать нужный мне участок я научился (там просто в textarea xml хранится)

Автор: CYBERDREAM 5.11.2011, 11:31
Приветствую Enelar, 
а что мешает в коллекцию добавить данные и сделать рефреш у грида? 


По поводу удобности привязки данных к отображению, то можно воспользоваться следующим кодом (на бэйсиске правда) но разберешься, если что пиши

Код

 Private Sub LoadBranches()

        Dim filePath As String = (My.Settings.BranchXMLPath)
        Dim BranchDS As New DataSet()
        BranchDS.ReadXml(filePath)
        Try
            With dg_Branches ' the datagridview
                .DataSource = BranchDS
                .DataMember = "branch"
                .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
                .AutoSize = True
                .EditMode = DataGridViewEditMode.EditOnEnter
            End With
        Catch ex As Exception
            MsgBox("Branch XML File Could Not Be Loaded: " & ex.Message)
        End Try

    End Sub
    Private Sub btn_SaveBranchList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_SaveBranchList.Click

        Dim branchDS As New DataSet
        branchDS = dg_Branches.DataSource '  BindingSource1.DataSource
        branchDS.WriteXml(Replace(My.Settings.BranchXMLPath, "branch", "newbranch"))

    End Sub

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)