读取 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 保持同步。
我正在创建一个 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 保持同步。