0

我有一個分組觀察的集合:的Windows Phone - 修改分組觀察到的集合

ObservableCollection<Group<ViewModel>> items 

這是一個LongListSelector數據源。我想添加/刪除項目。 我嘗試了諸如:

items.Where(group => group.Contains(item)).First().Remove(item); // didn't work 
items.Where(group => group.Title.Equals("a")).First().add(item) // also didn't work 

我試圖消除整個集團,並重新將其插入,但無濟於事。

任何想法?

+0

'Group'是否實現了'INotifyCollectionChanged'? 'ViewModel'實現'INorifyPropertyChanged'嗎? – MarcinJuraszek

+0

ViewModel yes,但Group no,實際上Group是List 的執行。但無論如何,它是可觀察的ViewModel組合集合,如果我們認爲觀察條件是針對組而不是視圖模型的,那麼當我刪除一個組或插入一個新組件時應該觸發INorifyPropertyChanged ..或者我錯了? –

+0

是的,插入/移除應該足夠了。 – MarcinJuraszek

回答

1

Where LINQ函數始終返回收集未鏈接到原始之一。要刪除組,請使用以下方法。

foreach (var group in items.Where(group => group.Contains(item).ToList()) 
    items.Remove(group) 

此外,如果Group類未實現INotifyPropertyChanged,添加/刪除項目組將沒有任何效果。