Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多态绑定源_C#_.net_Winforms_Data Binding_Polymorphism - Fatal编程技术网

C# 多态绑定源

C# 多态绑定源,c#,.net,winforms,data-binding,polymorphism,C#,.net,Winforms,Data Binding,Polymorphism,我有一个由3个类组成的类层次结构: Customer { public int Id {get; set;} public string Phone {get; set;} public string Address {get; set;} public abstract string Description {get;} } Person: Customer { public string Name { get; set; } public string

我有一个由3个类组成的类层次结构:

Customer
{
   public int Id {get; set;}
   public string Phone {get; set;}
   public string Address {get; set;}
   public abstract string Description {get;}
}

Person: Customer
{
   public string Name { get; set; }
   public string Surname { get; set; }
   public overrides string Description { get { return this.Name + " " + this.Surname; } }
}

Company: Customer
{
   public string CompanyName {get; set;}
   public overrides string Description { get { return CompanyName; } }

}
我有一个带有BindingSource的表单,它根据客户从对象数据源获取数据,我希望使用相同的表单输入和编辑公司和个人的数据

我这里有几个问题:

  • 是否可以将表单中的某些字段绑定到 派生类?我该怎么做
  • 是否值得实施 façade/composition类暴露子类的属性 只是为了减轻束缚
  • 是不是更好,而不是依靠 绑定功能,通过代码将数据从UI移动/移动到UI

  • 那个人不应该是你们的基础阶级吗?公司真的是一个客户和一个人吗?@SteveWellens不,我想要的是我定义的类层次结构。个人和公司都是客户。真正的问题不在于客户、公司和人,我简化了clearity的案例。对于从哪个类派生出哪个类的问题并不重要,这里的重点是如何在多态数据源上实现数据绑定,并使用派生类的属性绑定控件。您可以在这里了解一些想法: