1
我有一种情况,其中一个TabControl的ItemsSource绑定到一个视图模型集合,然后生成一个TabItem为每个视图模型。每个Tab项目视图模型将实现非常相似的基本功能(例如,与保存,新建,删除和重写ToString()等相关的命令)。C#通用基类,参数化构造函数
基于下面的代码示例,这是构建子视图模型的正确方法,它具有基类中的参数化构造函数吗?我对泛型不太熟悉,但是这种情况是否适合泛型基类?任何反馈非常感谢。
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...
}
首先,这与泛型无关。其次,从您向我们展示的代码中,没有迹象表明您正在使用枚举进行某些操作,除非得到它的字符串。在这种情况下,您可以传递名称而不是枚举。 – Euphoric