如何将复杂的可观察集合(元组集合的集合)关联到数据网格
How to associate a complex observable collection (collection of collections of tuples) to a datagrid
我有一个 class,其中包含一定数量的 tracefiels
public class TracefieldsUserClass
{
public ObservableCollection<Tuple<string, object, object>> TraceFieldsUser = new ObservableCollection<Tuple<string, object, object>>();
}
这里每个元组包含3个数据:TracefieldName、traceFieldType、traceFieldValue
TFNAME="NAME", TFTYPE="STRING", TF_VALUE="ADMINISTRATOR"
TFNAME="密码", TFTYPE="字符串", TF_VALUE=null
TFNAME="IS_ADMIN", TFTYPE="BOOL", TF_VALUE="TRUE"
所以这是一个动态的数据集合。
所有这些都被添加到一个集合中:
public class CollectionClass
{
public ObservableCollection<TracefieldsUserClass> obcTraceFieldUsers = new ObservableCollection<TracefieldsUserClass>();
}
public CollectionClass Collections = new CollectionClass();
as you can see in the picture at the beginning the obcTraceFieldUsers is properly populated:
现在我想将它绑定到数据网格,正如您在图片中看到的那样,我通过以下方式实现:
dtgUsers.ItemsSource = easyRunData.Collections.obcTraceFieldUsers;
但什么也没有出现。
我想要这样的东西:
NAME------------|---PASSWORD---|---IS_ADMIN
Administrator---|------------------------|------TRUE
User1-------------|-------123------------|------FALSE
Thank you in advance
Patrick
您的问题是您有一个 ObservableCollection
的 ObservableCollections。通过遍历作为 ItemsSource
传入的 ObservableCollection,DataGrid
仅找到 ObservableCollection
s,它不知道如何显示。
您需要将其缩减为一个集合,例如:
dtgUsers.ItemsSource = easyRunData.Collections.obcTraceFieldUsers
.SelectMany(tracefieldsUserClass => tracefieldsUserClass.TraceFieldsUser);
如果该解决方案在您的情况下不可行,则无法自动显示您的数据结构,因此您必须手动创建列。
我有一个 class,其中包含一定数量的 tracefiels
public class TracefieldsUserClass
{
public ObservableCollection<Tuple<string, object, object>> TraceFieldsUser = new ObservableCollection<Tuple<string, object, object>>();
}
这里每个元组包含3个数据:TracefieldName、traceFieldType、traceFieldValue
TFNAME="NAME", TFTYPE="STRING", TF_VALUE="ADMINISTRATOR"
TFNAME="密码", TFTYPE="字符串", TF_VALUE=null
TFNAME="IS_ADMIN", TFTYPE="BOOL", TF_VALUE="TRUE"
所以这是一个动态的数据集合。
所有这些都被添加到一个集合中:
public class CollectionClass
{
public ObservableCollection<TracefieldsUserClass> obcTraceFieldUsers = new ObservableCollection<TracefieldsUserClass>();
}
public CollectionClass Collections = new CollectionClass();
as you can see in the picture at the beginning the obcTraceFieldUsers is properly populated:
现在我想将它绑定到数据网格,正如您在图片中看到的那样,我通过以下方式实现:
dtgUsers.ItemsSource = easyRunData.Collections.obcTraceFieldUsers;
但什么也没有出现。 我想要这样的东西:
NAME------------|---PASSWORD---|---IS_ADMIN
Administrator---|------------------------|------TRUE
User1-------------|-------123------------|------FALSE Thank you in advance Patrick
您的问题是您有一个 ObservableCollection
的 ObservableCollections。通过遍历作为 ItemsSource
传入的 ObservableCollection,DataGrid
仅找到 ObservableCollection
s,它不知道如何显示。
您需要将其缩减为一个集合,例如:
dtgUsers.ItemsSource = easyRunData.Collections.obcTraceFieldUsers
.SelectMany(tracefieldsUserClass => tracefieldsUserClass.TraceFieldsUser);
如果该解决方案在您的情况下不可行,则无法自动显示您的数据结构,因此您必须手动创建列。