2011-12-07 92 views

回答

2

訂閱CollectionView.CollectionChanged事件。當事件觸發時,請查看NotifyCollectionChangedEventArgsAction屬性,如果它等於Add,則新添加的項目將包含在NewItems集合中。通常這隻包含一個項目,您可以將其保存到適當的變量或類成員中。當你需要知道最近添加的項目是什麼時,請閱讀這個變量。

+0

非常感謝您的回覆。你能否提供一個小代碼片段作爲參考,因爲我懷疑我們如何獲得NotifyCollectionChangedEventArgs,是否需要從INotifyCollectionChanged繼承Collection(Collection of Source)。 – Vikram

1

根據CollectionView實施您自己的收藏。在此集合內部,在項目之間存儲地圖並添加時間(以檢測訂閱CollectionView.CollectionChanged事件的新增項目)。根據時間public IEnumerable<T> GetItems(DateTime startTime, DateTime endTime)在收藏中定義方法。

0

創建一個繼承自INotifyCollectionChanged的源集合,您可以使用從INotifyCollectionChanged隱式繼承的ObservableCollection。您可以訂閱源代碼的CollectionChanged事件,然後查看Action屬性和NewItems集合。示例代碼 -

public ObservableCollection<object> Names 
{ 
    get; 
    set; 
} 

private ICollectionView source; 
public ICollectionView Source 
{ 
    get 
    { 
     if (source == null) 
     { 
     source = CollectionViewSource.GetDefaultView(Names); 
     source.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(source_CollectionChanged); 
     } 
     return source; 
    } 
} 

void source_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) 
{ 
    if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) 
    { 
     // Can play with e.NewItems here. 
    } 
} 
相關問題