今天在对datagridview已绑定的Datatable进行修改的时候,发现datagridview并没有像以往一样,同步显示,非得最小化一下再还原才显示,或是隐藏一下再显示。郁闷得不行,后来发现是我在线程内修改了dataTable,
后来改为在线程内组合好row委托到主线程修改DataTable解决了!!~
呵呵,今天又碰到这个问题了,不过这次要委托回主线程修改不麻烦了,要修改的字段太多了。上网搜了一下,找到了这个
http://social.msdn.microsoft.com/Forums/zh-CN/wpfzhchs/thread/7e6474a6-2647-4915-a8f5-a4a74d35d937/
在线程中使用
dg.Dispatcher.Invoke(new Action(()=> dg.Items.Refresh()));
dg.Dispatcher.BeginInvoke(new Action(()=> dg.Items.Refresh()));
或
dg.Invoke(new Action(()=> dg.Items.Refresh()));
dg.BeginInvoke(new Action(()=> dg.Items.Refresh()));
也能解决。如果线程开在别的类中,可以写一个事件回到窗体再执行。