WPF:DataGrid中的Dictionary <int,List >
我有一个Dictionary<int, List>
。 每个ID(int)都有一个相应的动态名称List
( List
)。
这是Datagrid中的预期输出。
ID | Name | Name | Name 1 Ash Tina Kara 2 Kc 3 Star Lara
我该如何实现这一目标?
如果Name不是固定数据,则需要动态添加列,如下所示:
DataGridTextColumn column = new DataGridTextColumn(); column.Header = "name4"; column.Binding = new Binding("Value[3]"); dg.Columns.Add(column);
好的,这是我的代码:
private Dictionary> dic; public Dictionary> Dic { get { return dic; } set { dic = value; } } public MainWindow() { InitializeComponent(); this.DataContext = this; Dic = new Dictionary>(); Dic.Add(1, new List { "a", "b", "c", "5" }); Dic.Add(2, new List { "d" }); Dic.Add(3, new List { "e", "f" }); int count = 0; foreach (List lst in Dic.Values) { if (lst.Count > count) { for (int i = count; i < lst.Count; i++) { DataGridTextColumn column = new DataGridTextColumn(); column.Header = "name" + i; column.Binding = new Binding(string.Format("Value[{0}]", i)); dg.Columns.Add(column); } count = lst.Count; } } }
但我希望你自己完成它
您是否尝试绑定到字典的Values
集合? 将dictionary.Values
集合设置为ItemsSource
并启用AutoGenerateColumns=True