【发布时间】:2011-01-23 10:25:41
【问题描述】:
我有一个包含字典项目的列表。这意味着
List[0] = Dictionary Item => Item[0] = id,Item[1] = 名称,Item[2] = 金额。
我需要以网格的方式在 ListView 控件中显示它。字典可能会有所不同。
更新:
列表中的每个项目如下所示:
["_id"] = "11212131" ["标题"] = "这是标题" ["DateCreated"] = "某个日期"
字典中的项目可以不同。
更新 2:
我正在使用以下代码创建一个动态 Gridview 控件,然后将列添加到 GridView 控件中。它可以工作,但现在有一条长长的水平线,由相同的重复列组成。我需要显示列名以及属于该列的数据。
var gridview = new GridView();
foreach (var o in objs)
{
var dic = o as Dictionary<String, Object>;
var enumerator = dic.GetEnumerator();
while (enumerator.MoveNext())
{
var current = enumerator.Current;
var gridViewColumn = new GridViewColumn();
gridViewColumn.Header = current.Key;
var binding = new Binding(current.Key);
//binding.Source = current;
gridViewColumn.DisplayMemberBinding = binding;
gridview.Columns.Add(gridViewColumn);
}
// new row
}
lvCollections.View = gridview;
更新 3:
我很接近。它可以工作,但它只显示一个带有重复列的长单行。
var gridview = new GridView();
foreach (var o in objs)
{
var dic = o as Dictionary<String, Object>;
var enumerator = dic.GetEnumerator();
while (enumerator.MoveNext())
{var gridViewColumn = new GridViewColumn();
var current = enumerator.Current;
gridViewColumn.Header = current.Key;
var binding = new Binding();
binding.Source = current;
binding.Path = new PropertyPath("Value");
gridViewColumn.DisplayMemberBinding = binding;
gridview.Columns.Add(gridViewColumn);
}
// new row
}
lvCollections.ItemsSource = objs;
lvCollections.View = gridview;
【问题讨论】:
-
我绝对理解这个想法,但是您能否发布您的课程以便我们了解底层数据是如何受到约束的?
-
没有固定的班级。对象被序列化,然后反序列化为字典类型。