我这里有一个新问题。我有一个 MainWindow,其中是 ContentGrid,这是一个 Frame。现在我创建了不同的页面,可以在这个“内容区域”中显示。在其中一个页面中,有一个绑定到 CollectionViewSource 的 Datagrid,其中 Source 是一个数据库(通过 EntityFramework)。现在,当此数据库表发生更改时(通过 ServiceBroker 和 SQLDependency 解决,触发工作正常)Datagrid 必须更新。 现在的问题: “Dependency_OnChange”事件在 MainWindow-Thread 中工作。当我尝试访问页面的 CollectionViewSource 来更新它(cvs.View.Refresh)时,我得到一个异常,因为另一个线程拥有这个 CVS,所以这是不可能的。
我已经尝试过不同的调度,例如:
Application.Current.Dispatcher.Invoke((Action)(()=>
{
cvs.Source = _db.Table.OrderByDescending(nr => nr.Date).Take(200);
cvs.View.Refresh();
}));
此代码块不会带来异常,但我也不会更新 UI ......似乎它什么也没做。
谁能帮我?