为了账号安全,请及时绑定邮箱和手机立即绑定

DataGrid 在其 ItemSource 更新时不创建行,有时会出现重复条目

DataGrid 在其 ItemSource 更新时不创建行,有时会出现重复条目

C#
翻翻过去那场雪 2021-06-15 21:43:26
我们正在制作一个 WPF 应用程序,它使用 FileSystemWatcher 来监视对用户选择的目录的更改并将更改输出到 DataGrid。在我的 MainWindow() 构造函数中,我将我的 DataGrid 绑定到我通过 ItemSource 调用 _eventList 的列表。当 OnChanged 或 OnRenamed FileSystemWatcher 事件发生时,我的应用程序成功地将四组字符串(更改类型、受影响的文件、路径、最后修改日期)写入我调用的数组 _event 中。这构成了一个事件。然后,在创建这个 _event 数组之后,我尝试通过调用一个单独的方法 SetThreadSafe() 来处理我的“调用线程无法访问这个对象,因为另一个线程拥有它”,跨线程异常。这就是我相信事情对我来说崩溃的地方。在我的 SetThreadSafe 方法中发生的不需要的行为是我的 DataGrid 显示它包含在它的 Items 属性中,条目对应于每个事件。DataGrid.Items 中的每个索引都绑定到我的 _eventList 同义词(应该如此),并且在此 List/Items 属性的每个索引内是数组的每个索引中的正确值。因此,一,我的 DataGrid 显示它在调试器的 Items 属性中包含正确的数据,但行不会填充到我的 DataGrid 中。两个,有时,不是全部,SetThreadSafe 方法触发它的 IF 和它 ELSE 条件,因此在我的 DataGrid.Items/_eventList 中添加一个重复的条目。我不再收到跨线程异常,但我觉得这里显然缺少某些东西。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 259 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信