Я пытаюсь очистить свой ObservableCollection MyTruckCollection
от всех его предметов. Проблема заключается в том, что она не обновляет мой пользовательский интерфейс после того, как коллекция очистилась от всех элементов.Очистка ObservableCollection и уведомление UI
Я попытался очищая его следующими способами:
MyTruckCollection.Clear();
foreach (var item in MyTruckCollection.ToList())
MyTruckCollection.Remove(item);
Я попробовал этот метод расширения:
public static void RemoveAll<T>(this ObservableCollection<T> collection, Func<T, bool> condition)
{
for (int i = collection.Count - 1; i >= 0; i--)
{
if (condition(collection[i]))
{
collection.RemoveAt(i);
}
}
}
И использовали его, как это:
MyTruckCollection.RemoveAll(x => x.TruckId != 0);
Все они удаляют все элементы, но мой пользовательский интерфейс не уведомляется об изменениях. Есть ли способ уведомить мой пользовательский интерфейс, когда я очищаю все данные в коллекции?
ПРИМЕЧАНИЕ. У меня также есть PropertyChanged, реализованный на моем MyTruckCollection.
Спасибо за нижний план ... вы можете объяснить, почему? – CareTaker22
После 'MyTruckCollection.Clear();' попробуйте написать 'RaisePropertyChanged (« MyTruckCollection »)' или 'OnPropertyChanged (« MyTruckCollection »);' – soydachi
MyTruckCollection привязан к OneTime или OneWay в пользовательском интерфейсе? В '{Binding ...}' по умолчанию - OneTime, а в '{x: Bind ...}' по умолчанию - OneTime. – soydachi