Wpf跨线程未显示DataGrid值

本文关键字:DataGrid 显示 线程 Wpf | 更新日期: 2023-09-27 18:29:52

这是我的代码:

    public void AddToGrid(string value)
    {
        MessageBox.Show(value);   //Message is showing with correct value
        dgrComponentList.Dispatcher.Invoke(new AddToGridDelegate(AddToGridSolid), System.Windows.Threading.DispatcherPriority.Normal, value);
    }
    private delegate void AddToGridDelegate(string value);
    private void AddToGridSolid(string value)
    {
        ((List<object>)this.dgrComponentList.ItemsSource).Add(new { ComponentName = value });
    }

当我从线程调用AddToGrid方法时,这不起作用。但如果我打电话给,没有线程

((List<object>)this.dgrComponentList.ItemsSource).Add(new { ComponentName = value });

它工作得很好。我哪里做错了?

感谢

编辑:我刚刚发现,值存储在那里,但不知何故,它没有显示在网格中。

Wpf跨线程未显示DataGrid值

网格不知道有新对象添加到集合中。要么实现inotify集合更改,要么使用可观察的集合来存储对象。