我需要将多个Lists或BindingLists(应该没有区别)数据绑定到一个Grid。这些列表都具有相同的大小,但不同的对象类型。这些列表中不同对象的属性应显示为彼此相邻的列,就好像列表A的第一个元素属于列表B的第一个元素,依此类推。
到目前为止,我已将数据复制到DataTable中并将其用作数据源,但出于各种原因,这种情况不再可能。
我知道直接绑定多个列表是不可能的,但我不知道如何启动它。我确实读过一些关于数据绑定的内容,但看起来我需要编写很多代码才能使用它,使用CurrencyManager等等。
有一个简单的解决方案可以帮助我吗?也许一个包装类可以完成所有这些工作? 如果没有,有人可以给我一些提示,必须实现哪些接口以及还要记住什么?
答案 0 :(得分:0)
如果你不能将这些不同的对象作为一个对象,那么这不是一个可绑定的列表。
你可以在一个全新的对象列表中对这些对象进行浅层复制,并即时创建它们:
Object MyFirstObject;
Object MySecondObject;
void BindableClass( Object class_1, Object class_2 )
{
MyFirstObject = class_1;
MySecondObject = class_2;
}
public String _firstColumnString { get { return MyFirstObject.FirstColumnString; } }
public String _secondColumnString { get { return MySecondObject.SecondColumnString; } }
更好的是,只需在BindableClass构造函数中提取所需的信息。
void BindableClass( Object class_1, Object class_2 )
{
_firstColumnString = MyFirstObject.FirstColumnString;
_secondColumnString = MySecondObject.SecondColumnString;
}
(但现在你真的只是一个名单了!)
然后,您可以通过执行以下操作来创建对象:
for (int i = 0; i < TheListSize; i++)
{
ABindableList list = new BindableClass( FirstList[i], SecondList[i] );
}