2015-07-20 75 views
1

我有一個名爲Doctor的實體類型,我創建了一個模型,以便我可以對實體中的項目使用INotifyPropertyChange。在我的模型稱爲DoctorModel,我有以下的功能,這將給我的例外:無法將類型爲'MS.Internal.NamedObject'的對象轉換爲DoctorModel

無法轉換類型「MS.Internal.NamedObject」的對象DoctorModel

// OVERLOADED METHODS 
    public override int GetHashCode() 
    { 
     return ID^7; 
    } 

    public override bool Equals(object obj) 
    { 
     // Check for null 
     if (ReferenceEquals(obj, null)) 
      return false; 
     // Check for same reference 
     if (ReferenceEquals(this, obj)) 
      return true; 
     var model = (DoctorModel)obj; <-- Exception HERE --> 
     return this.ID == model.ID; 
    } 

編輯: 我正在創建這種類型的ObservableCollection,但是當我嘗試刪除一個元素時,它不會從中刪除它。我在一個網站上看到一篇文章,顯示在搭售我所描述的內容時使用這種技術。我所指的文章如下:http://www.c-sharpcorner.com/UploadFile/tirthacs/remove-an-item-form-observable-collection-using-remove/

+0

可能的重複項:http://stackoverflow.com/q/18866308/861716 –

回答

2

只要在我的問題上發佈我的解決方案,以防其他人可以從中受益。

public override int GetHashCode() 
{ 
    return string.Format("DoctorModel{0}", this.ID.ToString()).GetHashCode(); 
} 

public override bool Equals(object obj) 
{ 
    var newObj = obj as DoctorModel; 

    if (null != newObj) 
    { 
     return this.GetHashCode() == newObj.GetHashCode(); 
    } 
    else 
    { 
     return base.Equals(obj); 
    } 
} 
相關問題