我們有一個實體框架模型,其中包含名爲QuoteStatus和SystemStatus的類,它們分別爲報價和系統的狀態建模。每個類都有一個導航屬性,該屬性是一個集合,其中包含狀態更改時要通知的人員的電子郵件。該QuoteStatus類看起來像這樣(簡體)...如何提供一個通用的子屬性
public class QuoteStatus {
public int ID { get; set; }
public string Name { get; set; }
public List<QuoteStatusNotification> QuoteStatusNotifications;
}
public class QuoteStatusNotification {
public int ID { get; set; }
public string Email { get; set; }
}
的SystemStatus和SystemStatusNotification類非常相似。
現在,我們希望有一個WPF窗口可用於維護這兩種類型的狀態(以及未來的更多情況)。這個想法是在窗口頂部有一個下拉控件,用戶指定要顯示的狀態類型(報價或系統),並將值發送到視圖模型。
視圖模型將有私有變量的數據...
private List<QuoteStatus> _quoteStatuses;
private List<SystemStatus> _systemStatuses;
我們希望視圖模型有一個公共財產以下狀態,它可以綁定到視圖上的網格。根據用戶在下拉列表中選擇的值,Statuses屬性將包含_quoteStatuses集合或_systemStatuses集合。
我們通過創建一個基本狀態類並讓QuoteStatus和SystemStatus類從它繼承來完成此操作。那很好。
我們遇到了兒童收藏問題。我們希望Status基類具有一個StatusNotifications集合,它將成爲QuoteStatusNotification類或SystemStatusNotification類的集合。我們無法確定如何創建StatusNotifications集合。
從another thread here(請參閱接受的答案中的第二個建議),看起來我可能可以用協方差做到這一點,但是我不知道該怎麼做。
任何人都可以解釋這一點?
爲什麼相同的技術不適用於通知類?創建一個BaseNotification類,使QuoteStatusNotification和SystemStatusNotification繼承並使基類的屬性使用List。 –
Kevin