WPF:Dictionary< int,List< string>>在DataGrid中 [英] WPF: Dictionary<int, List<string>> in DataGrid
本文介绍了WPF:Dictionary< int,List< string>>在DataGrid中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个字典< int,List< string>>
。每个ID(int)都有相应的名称动态列表( List< string>
)。
I have a Dictionary<int, List<string>>
. Each ID(int) has a corresponding dynamic list of names(List<string>
).
Datagrid中的预期输出。
This is the expected output in Datagrid.
ID | Name | Name | Name
1 Ash Tina Kara
2 Kc
3 Star Lara
如何实现?
推荐答案
<DataGrid x:Name="dg" ItemsSource="{Binding Dic}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="id" Binding="{Binding Key}"/>
<DataGridTextColumn Header="Name" Binding="{Binding Value[0]}"/>
<DataGridTextColumn Header="Name" Binding="{Binding Value[1]}"/>
<DataGridTextColumn Header="Name" Binding="{Binding Value[2]}"/>
</DataGrid.Columns>
</DataGrid>
如果Name不是固定数据,则需要动态添加列:
if Name is not a fixed data, you need add column dynamicly like this:
DataGridTextColumn column = new DataGridTextColumn();
column.Header = "name4";
column.Binding = new Binding("Value[3]");
dg.Columns.Add(column);
好的,这是我的代码:
<DataGrid x:Name="dg" ItemsSource="{Binding Dic}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="id" Binding="{Binding Key}"/>
</DataGrid.Columns>
</DataGrid>
private Dictionary<int, List<string>> dic;
public Dictionary<int, List<string>> Dic
{
get { return dic; }
set { dic = value; }
}
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
Dic = new Dictionary<int, List<string>>();
Dic.Add(1, new List<string> { "a", "b", "c", "5" });
Dic.Add(2, new List<string> { "d" });
Dic.Add(3, new List<string> { "e", "f" });
int count = 0;
foreach (List<string> 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;
}
}
}
但我希望你自己完成
这篇关于WPF:Dictionary< int,List< string>>在DataGrid中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文