[英]Prevent adding the new Item on ObservableCollection.CollectionChanged event
我需要檢查一些條件,然后決定是否將新項目添加到我的收藏夾中,無論如何我是否可以阻止添加到我的CollectionChanged事件中,或者現在為時已晚? 實際上,我可以修改新項目,但由於運行時異常而無法將其從NewItems集合中刪除:
protected void MyFilter(object sender, NotifyCollectionChangedEventArgs e)
{
f (e.Action == NotifyCollectionChangedAction.Add)
{
foreach (Item item in e.NewItems)
{
if (!Item.CanBeAdded())
{
//Prevent adding the Item !
}
}
}
}
好了,這里的問題是它已經添加到集合中了。 如果我遵循此操作的唯一方法是從集合中刪除它。 但這會重新觸發您創建的MyyFilter訂閱。
如果此集合綁定在網格上或可以從UI創建項目的任何地方,那么我建議您創建一個自定義的可觀察集合。
基本代碼就是這樣。
public class MyObservableCollection<T> : ICollection<T>
, INotifyCollectionChanged
, INotifyPropertyChanged
{
}
在ICollection的Add方法上實現驗證邏輯。
如果您願意,只需繼續復制此家伙的實現即可。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.