Я разрабатываю приложение UWP по шаблону MVVM.
Я хочу отфильтровать список, который асинхронно заполняется из API в конструкторе MainPageViewModel, и в то же время я хочу показать ProgressRing впользовательский интерфейс.Для этого я использую класса Стивена Клири NotifyTaskCompletion для связывания Task.Result с ListView в XAML и видимости ProgressRing со свойством NotifyTaskCompletion.IsNotComplete.
Пока все здесь работает правильно: мы хотим отфильтровать этот список, используя текстовое поле, в которое пользователь может писать, но я не могу изменить Task.Result, чтобы показать отфильтрованный список, потому что он доступен только для чтения.
public MainPageViewModel()
{
_listToShow = new NotifyTaskCompletion<List<Person>>(MyLists.getAsyncList());
}
Что не работает:
private void filter()
{
_listToShow.Result = _completeList.Where(x => x.name.Contains(_textToFilter)).ToList();
}
Есть идеи, как изменить список после фильтрации без использования асинхронных методов void?