我需要向一个数据网格添加三个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。我该怎么做?
答案 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;