相关疑难解决方法(0)

更新 ObservableCollection 无法正确更新 Xamarin Forms 中的 ListView

我在 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)

c# listview observablecollection xamarin xamarin.forms

0
推荐指数
1
解决办法
7766
查看次数