【问题标题】:MvvmCross MvxListView not refreshing on item deleteMvvmCross MvxListView 不刷新项目删除
【发布时间】:2014-03-31 11:28:14
【问题描述】:

当我从列表中删除一个项目时,MvxListView 不会刷新。

我的清单(没什么花哨的):

private List<Item> items = new List<Item>();
public List<Item> Items 
{ 
     get { return items; } 
     set { items = value; RaisePropertyChanged(() => Items); } 
}

不起作用的代码:

Items.RemoveAll(x => x.Id == item.Id);
RaisePropertyChanged(() => Items); 

有效的代码:

Items = Items.Where(x => x.Id != item.Id).ToList();

从视图模型中的独立函数调用RaisePropertyChanged() 函数时似乎没有预期的效果,但为什么呢?

【问题讨论】:

  • 刚刚尝试过 RaisePropertyChanged() 工作正常,所以我认为如果 mvvmcross 对您不起作用,您会遇到一些问题。我正在使用 MvvmCross 3.0.14
  • 切换到使用可观察集合而不是列表。或者,有关详细信息,请参阅stackoverflow.com/questions/22161149/…

标签: c# viewmodel mvvmcross


【解决方案1】:

你需要使用 ObservableCollection 来让 MvxListView 更新内容。

private ObservableCollection<Item> items = new ObservableCollection<Item>();
public ObservableCollection<Item> Items 
{ 
     get { return items; } 
     set { items = value; RaisePropertyChanged(() => Items); } 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-12
    • 2021-09-02
    相关资源
    最近更新 更多