[英]Bind wpf combobox to a dictionary of <string, CustomClass>, and use data of custom class
[英]Bind dictionary of a class to data grid
我有以下我想將其字典值綁定到數據網格控件的類
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
GetKeysPair() method
我嘗試像這樣綁定它:
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
}
問題是我不知道要輸入什么
New Binding(string);
我正在嘗試綁定以下屬性:
public struct DBColumn
{
public object Data { get; set; }
}
我嘗試了很多選擇,但我只是想不通:(
嗯,我假設您的DataGrid的ItemsSource是字典的集合(或list <keyvaluepair>的集合),如果是這種情況,那么我認為您應該能夠只使用索引器來訪問值,例如
DataGridColumn.Binding = new Binding(string.Format("[{0}].Data", item.Key));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.