iveはここに新しい問題があります。 IveにはContentGridでMainWindowがあり、これはFrameです。 Nowでは、この「コンテンツ領域」に表示できるさまざまなページを作成しました。これらのページの1つに、(EntityFrameworkを介して)ソースがデータベースであるCollectionViewSourceにバインドされたDatagridがあります。さて、このデータベーステーブルの変更が発生すると(ServiceBrokerとSQLDependencyによって解決され、発火は正常に動作します)、Datagridを更新する必要があります。 問題: "Dependency_OnChange" -EventはMainWindow-Threadで機能しています。私がページのCollectionViewSource(cvs.View.Refresh)を更新するためにアクセスしようとすると、このCVSを所有している別のスレッドからこれが不可能であるという例外が発生します。Collectionviewsource - different Threadそれを所有しています
Application.Current.Dispatcher.Invoke((Action)(()=>
{
cvs.Source = _db.Table.OrderByDescending(nr => nr.Date).Take(200);
cvs.View.Refresh();
}));
このコードブロックのdoesntのは、例外をもたらしますが、私はあまりにもUIを更新文句を言わない...それは何もしないようだ:
アイブ氏は次のように異なる派遣でそれを試してみました。
誰でも手伝ってもらえますか?
あなたのヒントありがとうございますが、DatagridのItemsSourceをデータベースに直接設定すると、 'datagrid.ItemsSource = _db.Table;' その後、データグリッド** doesnt ** 'は自動的に更新されますデータベースのエントリが書かれています... :( – mj2k2
DB更新のイベントを受け取ったときに 'Table.AcceptChanges()'を試しましたか?それもうまくいけない場合は、元のtipを '.ToList() '? –
Didnt work too ... :( – mj2k2