WPF DataGrid 数据绑定之"List配合Dictionary"
WPF 的DataGrid是WPF中最为强大的控件之一,可以通过各种方式绑定
例如通过最为形似的dataTable来绑定
本文则用List<Dictionary<K,V>>来绑定
DataGrid data_grid = new DataGrid();
List<Dictionary<String, String>> list_dic = new List<Dictionary<String, String>>
{
new Dictionary<String,String>()
{
{ "可用资金","1000.0"},
{ "可取资金", "958.0" },
{ "手续费", "1.68"},
},
new Dictionary<String,String>()
{
{ "可用资金","1100.0"},
{ "可取资金", "1958.0" },
{ "手续费", "31.68"},
},
};
foreach (var node in list_dic.First())
{
data_grid.Columns.Add(new DataGridTextColumn { Header = node.Key, Binding = new Binding(string.Format("[{0}]", node.Key)) });
}
data_grid.AutoGenerateColumns = false; //去掉多余列
data_grid.CanUserAddRows = false; //去掉多余行
data_grid.ItemsSource = dic;
效果:
其实list这一层代表了datagrid中的行,list有多少个元素就代表有多少行。
而每行中的Dic<K,V>代表了那一行的数据,K代表表头,如可用资金,V代表值 ,
因为表头往往是固定的,所以每一个dic的K也要一 一对应。。