У меня есть поиск по базе данных.Поиск работает в отдельной теме.Когда сущность найдена, я должен показать ее и некоторые связанные данные в WPF UI.
Я использую EntityFramework.Основная идея процесса поиска:
foreach (var item in _currentEntitySet)
{
Items.Add(item);
OnItemFound(item);
}
Где _currentEntitySet
- это ObjectQuery
Но я столкнулся с некоторыми проблемами.Когда срабатывает OnItemFound
, я пытаюсь использовать BeginInvoke()
для отображения найденного элемента и некоторых связанных объектов в пользовательском интерфейсе.
private void OnCatalogueItemFound(CatalogueItem item)
{
Application.Current.Dispatcher.BeginInvoke(new Action<object>((param) =>
{
var model = new CatalogueResultItemViewModel(param as CatalogueItem);
TitlesResultViewModel.Add(model);
}), System.Windows.Threading.DispatcherPriority.Background, item);
}
Проблема заключается в том, что навигационные свойства item являются NULL
Когда я использую Invoke()
вместо BeginInvoke()
, все работает нормально.Я должен использовать точно BeginInvoke()
по другим причинам.
Кто-нибудь знает, как я могу использовать BeginInvoke()
в моей ситуации?Спасибо:)