2013-01-08 31 views
0

我的項目是一個WPF項目,我使用下面的代碼來移除SelectedProducer窗體ProducerCollection(ObservableCollection)。ObservableCollection刪除項目後也趕上

try 
    { 
     context.Producers.Remove(SelectedProducer); 
     context.SaveChanges(); 
    } 
    catch 
    { 
     messageService.Show("Error"); 
    } 

,這是我收集和SelectedProducer屬性:

public ObservableCollection<DAL.Domain.Producer> ProducerCollection 
    { 
     get { return GetValue<ObservableCollection<DAL.Domain.Producer>>(ProducerCollectionProperty); } 
     set { SetValue(ProducerCollectionProperty, value); } 
    } 
    public static readonly PropertyData ProducerCollectionProperty = RegisterProperty("ProducerCollection", typeof(ObservableCollection<DAL.Domain.Producer>)); 

    [Model] 
    public DAL.Domain.Producer SelectedProducer 
    { 
     get { return GetValue<DAL.Domain.Producer>(SelectedProducerProperty); } 
     private set { SetValue(SelectedProducerProperty, value); } 
    } 
    public static readonly PropertyData SelectedProducerProperty = RegisterProperty("SelectedProducer", typeof(DAL.Domain.Producer)); 

但這種方式也時發生錯誤集合中刪除的SelectedProdcuer。 如何處理這個問題?

謝謝。

回答

1

此行爲是預期的 - 您從集合中刪除一個項目,並且如果數據庫調用失敗後它不會神奇地重新出現。您可以手動將該項目重新插入到catch塊中,或從數據庫中重新獲取整個集合。

您也可以重試保存,直到成功爲止,但很難說沒有任何上下文,最好的選擇是什麼。

相關問題