C# 将类的字典绑定到数据网格
我有一个类,我想将它的dictionary值绑定到数据网格控件C# 将类的字典绑定到数据网格,c#,wpf,binding,datagrid,dictionary,C#,Wpf,Binding,Datagrid,Dictionary,我有一个类,我想将它的dictionary值绑定到数据网格控件 public class DBRow : IEnumerable<DBColumn> { public DBColumn this[string ColumnName] { get { return Columns[ColumnName]; } set { Columns[ColumnName] = value; } } public Dictionary&
public class DBRow : IEnumerable<DBColumn>
{
public DBColumn this[string ColumnName]
{
get { return Columns[ColumnName]; }
set { Columns[ColumnName] = value; }
}
public Dictionary<string, DBColumn> Columns { get; set; }
public DBRow()
{
this.Columns = new Dictionary<string, DBColumn>();
}
public List<KeyValuePair<string,DBColumn>> GetKeysPair()
{
List<KeyValuePair<string, DBColumn>> ListOfKeyPair = new List<KeyValuePair<string, DBColumn>>();
foreach (var KeyPair in Columns)
{
ListOfKeyPair.Add(KeyPair);
}
return ListOfKeyPair;
}
public void AddColumn(DBColumn Column)
{
Columns.Add(Column.Name, Column);
}
public IEnumerator<DBColumn> GetEnumerator()
{
foreach (var Column in Columns)
{
yield return Column.Value;
}
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
foreach (var item in Columns)
{
yield return item;
}
}
}
我试着这样把它绑起来:
foreach (var item in Row.GetKeysPair())
{
DataGridTextColumn DataGridColumn = new DataGridTextColumn();
DataGridColumn.Header = item.Value.Name;
DataGridColumn.Binding = new Binding(********); <<--- Problem!!
dataGridDataList.Columns.Add(DataGridColumn); <<--- DataGrid
}
我正在尝试绑定以下属性:
public struct DBColumn
{
public object Data { get; set; }
}
我尝试了很多选择,但我就是想不出来:(嗯,我假设您的DataGrid的ItemsSource是一个字典集合(或列表集合),如果是这样的话,那么我相信您应该能够使用索引器访问值,例如
DataGridColumn.Binding = new Binding(string.Format("[{0}].Data", item.Key));
哇,谢谢你。它真的起作用了。我在那该死的电话线上花了大约3个小时,不知为什么我看不到简单的答案:D非常感谢
public struct DBColumn
{
public object Data { get; set; }
}
DataGridColumn.Binding = new Binding(string.Format("[{0}].Data", item.Key));