[英]C# Generic Base Class, Parameterized constructor
我遇到的情況是TabControl的ItemsSource綁定到視圖模型的集合,然后為每個視圖模型生成一個TabItem。 每個“選項卡項目”視圖模型都將實現非常相似的基本功能(例如,與“保存”,“新建”,“刪除”和覆蓋ToString()等相關的命令)。
根據下面的代碼示例,這是在基類中使用參數化構造函數構造子視圖模型的正確方法嗎? 我對泛型不是很熟悉,但是這種情況是否會以某種方式使其適合於泛型基類? 任何反饋,不勝感激。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WpfApplication1
{
public abstract class PartViewModel : ViewModelBase
{
public PartTypeEnum PartType { get; set; }
ICommand Save { get; set; }
ICommand New { get; set; }
ICommand Delete { get; set; }
public PartViewModel(PartTypeEnum partType)
{
PartType = partType;
}
public override string DisplayName
{
get { return this.ToString(); }
}
public override string ToString()
{
return EnumHelper.GetEnumDescription(PartType);
}
}
public class Part1ViewModel : PartViewModel
{
public Part1ViewModel() : base(PartTypeEnum.Part1)
{
}
}
public class Part2ViewModel : PartViewModel
{
public Part2ViewModel() : base(PartTypeEnum.Part2)
{
}
}
// etc...
}
我不這樣認為。 通用類型T可以接受哪些不同的類型?
ICommand
是您的抽象,無論ViewModel的哪一部分,您的ICommand都足夠。
我也不確定為什么要進行枚舉? 枚舉與不同的派生類所做的事情差不多嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.