Winforms DataRepeater 捕获数据已更改

Winforms DataRepeater Catch Data Changed

我有一个带 Visual Basic Power Packs - DataRepeater control 的 WinForm,在这个控件上我有一个复选框,它是数据绑定到我的数据库中的布尔字段。数据库只是 XML 和 XSD。

Me.AutoDownloadCheckBox.DataBindings.Add(New System.Windows.Forms.Binding("CheckState", Me.TVSeriesBindingSource, "AutoDownload", True))

我试图捕捉复选框的点击事件,当复选框被选中时它会抛出事件。但更改不会保存。

Imports TvSeriesData
Imports System.IO

Public Class Repeater  

    Private LocalDS As New TVSeriesDB 

    Public Sub New()

        ' This call is required by the designer.
        InitializeComponent()

        ' Add any initialization after the InitializeComponent() call.

        Dim TempFile As FileInfo
        TempFile = New FileInfo(My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\" & "TvLinks" & "\TVSeriesDB.xml")
        If TempFile.Exists Then
            LocalDS.ReadXml(My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\" & "TvLinks" & "\TVSeriesDB.xml")
        End If

        DataRepeater1.DataSource = LocalDS.TVSeries

    End Sub        

    Private Sub AutoDownloadCheckBox_Click(sender As Object, e As EventArgs) Handles AutoDownloadCheckBox.Click
        If LocalDS.HasChanges() Then LocalDS.AcceptChanges()
    End Sub

End Class

因为我正在从 XML 读取数据库,所以当您接受更改时,它所做的只是在内存中更新,而不是实际的 XML 文件。

LocalDS.WriteXml(My.Computer.FileSystem.SpecialDirectories.MyDocuments & "\" & "TvLinks" & "\TVSeriesDB.xml")

所以我需要写回 XML 文件以实际保存在内存中所做的更改。如果数据库很大,这可能是一个耗时的过程,因此请使用异步函数来保存。