Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.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/7/sql-server/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_Data Binding - Fatal编程技术网

C# 将多个列表数据绑定到网格

C# 将多个列表数据绑定到网格,c#,.net,data-binding,C#,.net,Data Binding,我需要将多个列表或绑定列表(应该没有区别)数据绑定到一个网格。这些列表都具有相同的大小,但对象类型不同。这些列表中不同对象的属性应显示为彼此相邻的列,就好像列表A的第一个元素属于列表B的第一个元素,依此类推 到目前为止,我将数据复制到DataTable中,并将其用作数据源,但由于各种原因,这已不再可能 我知道不可能直接绑定多个列表,但我不知道如何开始。我确实读过一些关于数据绑定的书,但看起来我需要编写很多代码才能工作,比如使用CurrencyManager等等 有没有一个简单的解决方案可以帮助我

我需要将多个列表或绑定列表(应该没有区别)数据绑定到一个网格。这些列表都具有相同的大小,但对象类型不同。这些列表中不同对象的属性应显示为彼此相邻的列,就好像列表A的第一个元素属于列表B的第一个元素,依此类推

到目前为止,我将数据复制到DataTable中,并将其用作数据源,但由于各种原因,这已不再可能

我知道不可能直接绑定多个列表,但我不知道如何开始。我确实读过一些关于数据绑定的书,但看起来我需要编写很多代码才能工作,比如使用CurrencyManager等等

有没有一个简单的解决方案可以帮助我?也许是一个包装器类完成了所有这些?
如果没有,有人能给我一些提示哪些接口必须实现,还有什么需要记住的吗?

如果不能将这些不同的对象作为一个对象,那么这不是一个可绑定的列表

您可以在一个全新的对象列表中对这些对象进行浅拷贝,并动态创建它们:

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] );
}
for(int i=0;i
显然,您需要做的是将这些对象展平,并创建一个列表(加入各种列表,就像您使用datatable方法所做的那样),然后将它们显示在网格上。从你的问题中不清楚的是,当你说“这是不可能的各种原因”时,你指的是什么?为什么?