Я пытаюсь выяснить это, учитывая следующий код, нужно ли выполнять Refresh () в потоке пользовательского интерфейса?Кажется, это работает, и мне интересно, действительно ли CollectionViewSource является объектом с поддержкой потоков / безопасным?Он определенно имеет свойства и методы для поддержки вызова в нужном потоке, но не уверен, что это оставлено на усмотрение разработчика или это выполняется внутри объекта?
public CollectionViewSource UserList { get; private set; }
void setupCollections()
{
UserList = new CollectionViewSource();
UserList.Source = searchProvider.UserResults;
UserList.SortDescriptions.Add(new SortDescription("DisplayName", ListSortDirection.Ascending));
}
Безопасен ли этот поток в Silverlight???
void RefreshUserList()
{
UserList.View.Refresh();
}
Или вам нужно сделать что-то подобное?
void RefreshUserList()
{
// Is This Required?
UserList.Dispatcher.BeginInvoke(() =>
{
UserList.View.Refresh();
});
// Or MVVM-light Method
DispatcherHelper.CheckBeginInvokeOnUI(() =>
{
UserList.View.Refresh();
});
}