读取 XML 并更新 DataGridView

Read XML and update DataGridView

我正在创建一个 windows 表单应用程序,它从几个 xml 文件中读取一堆标签,并将数据写入 win 表单中的 DataGridview。目前,数据显示在 DataGrid 上,但如果我更改任何 xml 文件,它不会更新 dataGridView 中的数据。要求是数据必须在 dataGridView 中自动更改,而无需任何手动干预,如果在 xml 文件中进行了任何更改。我尝试在线搜索但找不到解决此问题的任何答案

如果有人解决了这个问题,请告诉我。

字典不是绑定的理想选择——Dictionary's ValueCollection<T> 不支持 IList,因此它不是 BindingSource 的理想匹配项。如果您受困于字典,那么始终权威的 Marc Gravell 有一个可能适合您的解决方案 here

如果您不必使用字典,那么典型的、有点幼稚的方法是将 BindingSource.DataSource 设置为 List<MyObject>,然后将 DataGridView.DataSource 设置为那个绑定源。设置完成后,您可以通过 BindingSource 的 add/remove 方法 add/remove 来代替 adding/removing 项通过基础列表 - UI 将获取这些更改.如果您更改现有项目,则可以调用 BindingSource.ResetItem 方法通知 UI 它需要刷新该项目。

但最好、最灵活的方法是将 DataGridView.DataSource 属性 设置为 BindingList<MyObject>, and, ideally, have your MyObject class implement INotifyPropertyChanged...BindingList 通知 UI 新项目,并且 INotifyPropertyChanged 实现通知 UI 有关对现有项目的更改。这使您可以直接修改集合,而不必担心 UI 保持同步。