将三个List <string>添加到WPF datagrid

时间:2015-05-06 08:56:35

标签: c# wpf datagrid

我需要向一个数据网格添加三个List。每个列表都应该有自己的行。列表将仅创建/更改一次 - 这是在从CSV文件导入数据期间。我知道如何使用以下代码向数据网格添加两个列表:

dtgCsvData.ItemsSource = time.Zip(temperature, (t, c) => new { time = t, temperature = c });

时间和温度是三个列表中的两个。第三个也是最后一个列表名为rate。

public List<string> temperature;
public List<string> time;
public List<string> rate;

但是,我无法看到如何将最后一个列表添加到datagrid。我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以使用复合集合将所有列表绑定到数据网格

像这样 -

<DataGrid.ItemsSource>
                <CompositeCollection>
                    <CollectionContainer Collection="{Binding temperature}" />
                    <CollectionContainer Collection="{Binding time}" />
                    <CollectionContainer Collection="{Binding rate}" />
                </CompositeCollection>
</DataGrid.ItemsSource>

答案 1 :(得分:1)

如果它们全部相关,为什么你甚至有三个不同的列表?他们也应该住在一起。我的意思是创建一个具有所有必要属性的类。

public class TemperatureEntity
{
   public double Temperature {get; set;}
   public DateTime Time {get; set;}
   public string Rate{get; set;}//string or whatever type it is
}

现在,所有三个列表都将成为TemperatureEntity

的单个列表
public List<TemperatureEntity> temperatures;

然后将其绑定到DataGrid。

dtgCsvData.ItemsSource = temperatures;