我正在編寫一個WPF應用程序,我目前正在將一些重用代碼重構爲其他視圖模型可以繼承的基本ViewModel類。在此基礎上類從基類演變爲可繼承類繼承類
一個屬性字段是
public class MessageParentBase
{
MessageParentBase() {}
public string Name;
}
internal ObservableCollection<MessageParentBase> _GridData = new ObservableCollection<MessageParentBase>();
我有一個後續的財產申報
public ObservableCollection<MessageParentBase> GridData
{
get { return _GridData; }
set { _GridData = value; }
}
這個偉大的工程,一切我的問題是,inerited類實際使用的後續類
Public class ChatMessage : MessageParentBase
{
public string Message;
}
並且該視圖包含一個數據網格,它是博und到這個GridData屬性,但是應該從ChatMessage類中綁定到Message字段的列是空的,並且填充MessageParentBase類中的字段。
所以我認爲有一個問題,不知道從MessageParentBase類轉換到ChatMessage。
我可以通知視圖,對象將是「ChatMessage」類型。
我也嘗試了移動的財產申報到繼承的視圖模型作爲
public ObservableCollection<ChatMessage> GridData
{
get { return _GridData; }
set { _GridData = value; }
}
,但是這給了我以下錯誤: -
無法隱式轉換類型「System.Collections.ObjectModel.ObservableCollection」到'System.Collections.ObjectModel.ObservableCollection'
我是否需要在視圖級別進行強制轉換,或者是否可以更改視圖模型以更好地實現此目標?
任何建議將不勝感激。
埃姆林
*您在視圖級*上強制轉換的含義是什麼?您是否綁定了基本視圖模型並想要顯示ChatMessage屬性?你的問題不清楚。向我們展示您將視圖模型綁定到視圖的方式。 – Joao 2013-02-15 17:43:55
另外,顯示messageParentBase類。就目前而言,你的問題很難遵循。 – 2013-02-15 17:45:09
希望我的編輯可以幫助更多地解釋我的問題。 – Emlyn 2013-02-15 18:09:24