在 WPF 中绑定和显示字典的字典
Binding and displaying a dictionary of dictionaries in WPF
我有一个字典,我想在数据网格中显示它。
var data = new Dictionary<KeyTypeA, Dictionary<KeyTypeB, string>>();
"inner" 词典都共享一组给定的 KeyTypeB
的相同键,这应该成为行 headers。
这个问题与this SO question有关,但不同的是我直到运行时才知道密钥。
您可以使用 DataGrid
并在代码中构建 DataGridColumn
的集合,如下所示(其中 ColumnCollection 是一个 ObservableCollection<DataGridColumn>
):
foreach ( string columnName in columns )
{
ColumnCollection.Add( new DataGridTextColumn()
{
Header = columnName,
Binding = new Binding( String.Format( "[{0}]", columnName ) )
} );
}
您需要弄清楚如何根据您的词典和类型获取 columns
集合。
然后您需要将 ColumnCollection 绑定到您的 DataGrid 列(参见 this SO 答案)。
我有一个字典,我想在数据网格中显示它。
var data = new Dictionary<KeyTypeA, Dictionary<KeyTypeB, string>>();
"inner" 词典都共享一组给定的 KeyTypeB
的相同键,这应该成为行 headers。
这个问题与this SO question有关,但不同的是我直到运行时才知道密钥。
您可以使用 DataGrid
并在代码中构建 DataGridColumn
的集合,如下所示(其中 ColumnCollection 是一个 ObservableCollection<DataGridColumn>
):
foreach ( string columnName in columns )
{
ColumnCollection.Add( new DataGridTextColumn()
{
Header = columnName,
Binding = new Binding( String.Format( "[{0}]", columnName ) )
} );
}
您需要弄清楚如何根据您的词典和类型获取 columns
集合。
然后您需要将 ColumnCollection 绑定到您的 DataGrid 列(参见 this SO 答案)。