我在 XAML 中有一个 ListView,它绑定到 ViewModel 中的 ObservableCollection。初始化或 OnAppearing() 后,ListView 项目将完美显示。
但是,当我尝试从页面内(通过 ViewModel)更新 ListView 项目时,项目已更新,但旧项目仍然存在。
基本上,新项目将添加到 ListView 中,但位于之前 ObservableCollection 中的项目下方。我已经实现了 INotifyPropertyChanged 并且我认为我已经完成了所有正确的操作(尽管显然不是)。
请告诉我我做错了什么。我已经在 Collection 上尝试过 Clear() 但无济于事(相同的结果)。
基本视图模型:
public class BaseViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
protected void SetValue<T>(ref T backingField, T value, [CallerMemberName] string propertyName = null)
{
if (EqualityComparer<T>.Default.Equals(backingField, value))
return;
backingField = value;
OnPropertyChanged(propertyName);
}
}
Run Code Online (Sandbox Code Playgroud)
XAML:
<ListView IsEnabled="{Binding IsLoadingTable, Converter={Helpers:InverseBoolConverter}}"
IsVisible="{Binding IsLoadingTable, Converter={Helpers:InverseBoolConverter}}" …Run Code Online (Sandbox Code Playgroud)