WPF如何另开线程实现界面绑定
比如说,我有一个按钮,当按钮按下时,下面的datagrid就读取数据库并绑定,怎样才能使界面不卡死
[解决办法]
LZ既然知道可以另开线程绑定界面 什么原因没有去实现呢?
[解决办法]
wpf中所有与UI控件交互的内容都需要放到UI线程中。
可以在点击按钮后创建一个线程去数据库查询数据,查询完毕后,需要在UI线程中进行数据源的绑定和更新。
如果查询数据很大,在数据源的绑定和更新时界面会出现卡的情况。
可以做类似生产者消费者问题考虑,数据查询线程负责查询数据并填充到一缓冲区队列,数据检查线程负责检查数据缓冲区,如存在数据,则取出队列中数据,并通过UI线程添加到数据源中,以此实现页面更新。
作为datagrid的绑定源,可以考虑使用ObservableCollection<>。这样上面只需要对这个list添加数据就可以了。