C# 使用MVVM在DataGrid上复制动态列表

C# 使用MVVM在DataGrid上复制动态列表,c#,.net,mvvm,datagrid,C#,.net,Mvvm,Datagrid,因此,接下来的问题是: 我在SQL中有一个表,其中有未预定义的列的数量(在不同的数据库中可能是不同的数量和不同的列)。这就是为什么我不能预先定义所有的值。我正在使用动态列表。 这是我的看法 这是我的ViewModel //选择前1名“GB40”作为[STORAGEPLANT],“W”作为[PARTSORIGIN],“Zelena Street 12”作为[Street] 动态d=等待_workorderattributeservice.GetWorkOrderAttributesDynam

因此,接下来的问题是: 我在SQL中有一个表,其中有未预定义的列的数量(在不同的数据库中可能是不同的数量和不同的列)。这就是为什么我不能预先定义所有的值。我正在使用动态列表。

这是我的看法


这是我的ViewModel

//选择前1名“GB40”作为[STORAGEPLANT],“W”作为[PARTSORIGIN],“Zelena Street 12”作为[Street]
动态d=等待_workorderattributeservice.GetWorkOrderAttributesDynamic(作业编号);
List DynamicList 2=新列表();
dynamicList2.Add(新){
STORAGEPLANT=“StorPlant2”,
PARTSORIGIN=“D”,
街道=“舍甫琴卡街1”
});
dynamicList2.添加(d);//如果我在添加预定义项之前添加此项,则会发生重复
TestCollection=新的ObservableCollection(dynamicList2);
如果我在预定义对象之后添加动态对象,那么下面是第一次在DataGrid上的输出-它不会重复。但实际上我只需要添加这个未预定义的对象——如果我这样做了——它会复制到一行中,我会两次获得所有参数

关于这个问题的更多信息:我不能使用预定义的列,因为它可能不同,我需要一些超级灵活的东西。我在注释中添加了一个SQL示例:例如,我的SQL返回:

姓名年龄位置和值为
“彼得”,“21”,“老板”

为什么它会在数据网格上显示为
名称年龄位置名称年龄位置和值为
“彼得”,“21”,“老板”,“彼得”,“21”,“老板”


为什么它会复制列,但如果我添加一些预定义的对象,然后从wait获取-结果只有3列没有复制?玩dynamis是危险的。我猜
d
返回的表单
await
是一个列表,它由一个项组成,而不是一个对象,例如
IEnumerable
。因此,
DataGrid
会创建冗余列。尝试强类型解决方案。嗨,实际上我不能使用预定义的列,因为它可能不同,我需要一些超级灵活的东西。我在comments中添加了一个SQL示例:例如,我的SQL返回:NAME-AGE-POSITION,值为“Peter”、“21”、“Boss”。为什么它会在数据网格上显示为NAME-AGE-POSITION NAME-AGE-POSITION,并且值是“Peter”、“21”、“Boss”、“Peter”、“21”、“Boss”?为什么它会复制列,但是如果我添加一些预定义的对象,然后从wait获取-结果只有3列没有重复?可能是
DataTable
then?点击调试器并检查d@Goodies因为它是动态的,所以没有显示任何内容