簡體   English   中英

將類的字典綁定到數據網格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM