У меня возникла новая проблема. Ive получил MainWindow, в котором есть ContentGrid, и в этом есть Frame. Теперь ive создал разные страницы, которые можно показать в этой «контент-области». На одной из этих страниц есть Datagrid, связанный с CollectionViewSource, источником которого является база данных (через EntityFramework). Теперь, когда происходит изменение в этой таблице базы данных (решается через ServiceBroker и SQLDependency, срабатывание работает отлично) Datagrid должен обновляться. Теперь проблема: «Dependency_OnChange» -Event работает в MainWindow-Thread. Когда я пытаюсь получить доступ к CollectionViewSource страницы для обновления (cvs.View.Refresh), я получаю исключение, что это невозможно, избавиться от другого Thread, который владеет этим CVS.Collectionviewsource - разные темы принадлежат его
Ive пробовал с разными Диспетчерская как:
Application.Current.Dispatcher.Invoke((Action)(()=>
{
cvs.Source = _db.Table.OrderByDescending(nr => nr.Date).Take(200);
cvs.View.Refresh();
}));
Это оленья кожа кодоблок приносит исключение, но я не буду обновлять UI слишком ... Кажется, что он ничего не делает.
Может ли кто-нибудь мне помочь?
Эй, спасибо за ваш кончик, но когда я устанавливаю ItemsSource из Datagrid непосредственно в базу данных с этим: 'datagrid.ItemsSource = _db.Table;' тогда DataGrid ** оленья кожа **»обновлениями автоматически, когда новый запись в базе данных написана ... :( – mj2k2
Вы пытались 'Table.AcceptChanges()' когда вы получаете это событие обновления БД? Также если это не работает, попробовали ли вы мой оригинальный совет о '.ToList() '? –
Did not work too ... :( – mj2k2