2014-03-31 66 views
2

当我从列表中删除项目时,MvxListView不刷新。MvvmCross 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()函数在从视图模型中的独立函数中调用时没有期望的效果,但是为什么?

+0

刚试过和RaisePropertyChanged()正常工作,所以我觉得你有一些问题与mvvmcross如果它没有在你的身边工作。我正在使用MvvmCross 3.0.14 – choper

+1

切换到使用可观察集合而不是列表。或者,有关详细信息,请参阅http://stackoverflow.com/questions/22161149/mvvmcross-ios-uitableview-doesnt-update-on-property-changed/22161150#22161150 – Stuart

回答

2

您需要使用ObservableCollection才能使MvxListView更新内容。

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