OnEvent 数据网格列添加失败

本文关键字:添加 失败 网格 数据 数据网 OnEvent | 更新日期: 2023-09-27 18:34:02

我有一个数据网格。我想添加列作为事件的结果。所以我做

 for (int iii = 1; iii <= 4; ++iii)
 {
  var dtgColumn = new DataGridTextColumn();
  dtgColumn.Header = "AAA"
  Dispatcher.Invoke((Action)(() => { dtgResults.Columns.Add(dtgColumn); }));
 }

但是尽管使用了调度程序,我还是收到此错误:

调用线程无法访问此对象,因为其他线程拥有它。

感谢您的任何帮助帕特里克 }

OnEvent 数据网格列添加失败

它看起来不是UI控件本身的问题,而是创建dtgColumn对象的问题。您正在一个线程上创建UI元素,并将其添加到主线程上的UI元素。

更改您的代码,例如:

  Dispatcher.Invoke((Action)(() => { 
       var dtgColumn = new DataGridTextColumn();
       dtgColumn.Header = "AAA"
       dtgResults.Columns.Add(dtgColumn); 
   }));

因此,在拥有父控件的线程上创建并添加UI对象。