我有一个Doctors
,Teachers
和Drivers
的列表,它们都是从Individual
派生的。
根据光标所在的人,我想显示特定于行业的属性。
我的想法是将所有这些人都放在一个BindingList<Individual>
的数据源IndividualsBindingSource
中。
在IndividualsBindingSource.CurrentChanged
事件中,我将显示一个特定于职业的面板,并为飞行中的特定于职业的控件创建Bindings
,以便在驾驶时显示其驾驶执照等。
但是在CurrentChanged
事件的主体中,此行给出了运行时错误:
tbLicense.DataBindings.Add(new System.Windows.Forms.Binding("Text", IndividualsBindingSource, "DriverLicense", true));
这可能意味着它无法将控制绑定到基础数据源的DriverLicense
属性,因为该数据源是基本类型Individual
。
问题1:是否可以将UI控件绑定到继承的对象属性,同时将所有对象都放在BindingList<base type>
中?
问题2:如果不是,那么显示允许2向绑定的特定于对象的控件的最佳做法是什么?
答案 0 :(得分:0)
嗯,太简单了...
而不是绑定到列表
tbLicense.DataBindings.Add(new System.Windows.Forms.Binding("Text", IndividualsBindingSource, "DriverLicense", true));
我必须绑定到特定对象
tbLicense.DataBindings.Add(new System.Windows.Forms.Binding("Text", IndividualsBindingSource.Current, "DriverLicense", true));