【问题标题】:Binding two lists to one datagrid将两个列表绑定到一个数据网格
【发布时间】:2014-01-10 13:49:21
【问题描述】:

我目前正在尝试将两个列表绑定到 wpf 中的数据网格

   int rows = Convert.ToInt32(rowsTB.Text);
        double offset = Convert.ToDouble(offsetTB.Text);
        double startValue = Convert.ToDouble(startValueTB.Text);
        List<double> valuesList = new List<double>();
        for (int i = 0; i < rows; i++)
        {
            valuesList.Add(startValue += offset);
        }

        List<double> maxList = new List<double>();
        foreach (var x in valuesList)
        {
            maxList.Add(MaxValue(x));
        }
        valuesGrid.ItemsSource = valuesList;
        maxGrid.ItemsSource = maxList;

这是我目前拥有的当前 sn-p,我创建了两个数据网格,每个数据网格有一列,每个数据网格都绑定到一个列表,但这不是我真正想要的,我想要 1 个数据网格2 列,每列都绑定到一个列表。

如果有可能用一个有 2 个列表的对象来做这件事,你能给我举个例子吗? 谢谢

【问题讨论】:

    标签: c# wpf datagrid


    【解决方案1】:

    您可以构造DataTable 或创建自定义对象并将其添加到单个List。我更喜欢自定义对象,因为它更像 OOP。所以要构造一个自定义对象,创建这个类...

    public class DataItem
    {
        public double Values {get; set;}
        public double MaxValue {get; set;}
    }
    

    然后执行您正在执行的所有处理,而是将 DataItem 类添加到列表中...

    for (int i = 0; i < rows;i++)
    {
        DataItem item = new DataItem();
        item.Value = startValue += offset;
        item.MaxValue = MaxValue(item.Value);
    
        valuesList.Add(item);
    }
    

    最后,将列表绑定到DataGrid...

    valuesGrid.ItemsSource = valuesList;
    

    【讨论】:

    • 谢谢!一个是数据网格中的值没有正确绑定,或者我可能需要强制转换或其他什么,因为现在每个单元格都充满了类似“wpfapplication.mainwindow.dataitem”
    • 嗯,当然,您需要在列中设置绑定表达式...我假设您知道所有这些内容...看起来类似于此...@ 987654328@
    • 我的错!我设置了绑定但没有路径:D 非常感谢!真的很感激:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2013-11-03
    • 2013-03-28
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多