C# 在WPF中绑定和显示词典词典

C# 在WPF中绑定和显示词典词典,c#,wpf,datagrid,wpfdatagrid,C#,Wpf,Datagrid,Wpfdatagrid,我有一个字典,我想在数据网格中显示 var data = new Dictionary<KeyTypeA, Dictionary<KeyTypeB, string>>(); var data=newdictionary(); “内部”词典都共享一组给定的KeyTypeB的相同键,这些键应该成为行标题 问题与相关,但不同的是我直到运行时才知道键。您可以使用DataGrid并在代码中构建DataGridColumn的集合,如下所示(其中ColumnCollection是O

我有一个字典,我想在数据网格中显示

var data = new Dictionary<KeyTypeA, Dictionary<KeyTypeB, string>>();
var data=newdictionary();
“内部”词典都共享一组给定的
KeyTypeB
的相同键,这些键应该成为行标题


问题与相关,但不同的是我直到运行时才知道键。

您可以使用
DataGrid
并在代码中构建
DataGridColumn
的集合,如下所示(其中ColumnCollection是
ObservableCollection
):

您需要根据字典和类型找出如何获取
集合


然后,您需要将ColumnCollection绑定到DataGrid列(请参见答案)。

只需将其打包到DataTable@FrisbeeDataTables主要用于WinForms。例如,请参见购买System.Data中的元音。是的,那是我的-1这大概就是我最后给出的解决方案。太好了。这对我很有效。您甚至可以通过引入样式、格式。。。在代码中构建列时,唯一的缺点是需要对视图模型中的控件进行引用,这是可能的,但我想避免。你可以定义你自己的类型来保存标题和绑定,并创建一个转换器来将你的类型转换为DataGridTextColumns。你能给出一个这样的示例吗?
foreach ( string columnName in columns )
{
     ColumnCollection.Add( new DataGridTextColumn()
                           {
                               Header = columnName,
                               Binding = new Binding( String.Format( "[{0}]", columnName ) )
                           } );
}