2014-03-31 108 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); } 
} 
相關問題