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); }));
}
但是尽管使用了调度程序,我还是收到此错误:
调用线程无法访问此对象,因为其他线程拥有它。
感谢您的任何帮助帕特里克 }
它看起来不是UI
控件本身的问题,而是创建dtgColumn
对象的问题。您正在一个线程上创建UI
元素,并将其添加到主线程上的UI
元素。
更改您的代码,例如:
Dispatcher.Invoke((Action)(() => {
var dtgColumn = new DataGridTextColumn();
dtgColumn.Header = "AAA"
dtgResults.Columns.Add(dtgColumn);
}));
因此,在拥有父控件的线程上创建并添加UI
对象。