我有一个清单。列表中的每个项目都有一个包含2个键/值的字典项。
public List<Dictionary<string, object>> listOfDictionaries;
public Dictionary<string, object> aDict;
public void AddToList()
{
aDict = new Dictionary<string, object> ();
aDict[KEY_1] = "Value 1";
aDict[KEY_2] = "Value 2";
listOfDictionaries.add(aDict);
aDict = new Dictionary<string, object> ();
aDict[KEY_1] = "Value 3";
aDict[KEY_2] = "Value 4";
listOfDictionaries.add(aDict);
MyListView.ItemSource = listOfDictionaries;
}
现在我想将我的字典项绑定到XAML中的ListView。
<ListView Name:"MyListView" />
但是这样做只会在MyListView中显示“Collection”这个词。我希望MyListView显示我所有词典中的所有值。例如:
First row:
Value 1 + Value 2
Second row:
Value 3 + Value 4
等等。顺便说一下,KEY_1&amp; KEY_2都是常量,其值在不同的文件中确定。
我在网上经历了很多例子,但它们或者看起来太混乱,或者只是绑定到一本词典。任何帮助是极大的赞赏。谢谢!
答案 0 :(得分:1)
要使用可以拥有动态属性名称的对象,可以使用ExpandoObject
和dynamic
。
List<dynamic> list = new List<dynamic>();
public void AddToList()
{
dynamic d1 = new ExpandoObject();
((IDictionary<string, object>)d1)[KEY_1] = "Value 1";
((IDictionary<string, object>)d1)[KEY_2] = "Value 2";
list.Add(d1);
dynamic d2 = new ExpandoObject();
((IDictionary<string, object>)d2)[KEY_1] = "Value 3";
((IDictionary<string, object>)d2)[KEY_2] = "Value 4";
list.Add(d2);
MyListView.ItemSource = listOfDictionaries;
}
答案 1 :(得分:0)
是的,创建一个名为item的类具有属性valueA和值B以及valeAplusValueB这是总和。填充项目列表并使用binired到valueAplusValueB属性的listview项目设置litview的来源