2015-05-06 2 views
0

Мне нужно добавить три списка в один datagrid. Каждый список должен иметь свою собственную строку. Списки будут создаваться или меняться только один раз - это во время импорта данных из файла CSV. Я знаю, как добавить два списка в сетку, используя следующий код:Добавить три списка <string> в WPF datagrid

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

Где время и температура два из трех списков. Третий и последний список называется скоростью.

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

Однако я не вижу, как добавить последний список в datagrid. Как мне сделать что?

ответ

0

Если все они связаны, почему вы даже с тремя различными списками? Они также должны жить вместе. Я имею в виду создание класса со всеми необходимыми свойствами.

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; 
+0

Как добавить данные в класс TemperatureEntity? В настоящее время я использую следующее:'temperature = new List (reader.GetTemperature()); ' 'time = new Список (reader.GetTime());' 'rate = new Список (reader.GetRate ()); ' – MikaelKP

+0

@MikaelKP Что вы читаете? вам нужно создать новый экземпляр «TemperatureEntity» и добавить его в список. 'temperature.Add (new TemperatureEntity() {Temperature = temperatureValue, Time = dateTime})' –

2

вы можете использовать составное коллекцию, чтобы связать все ваши списки к сетке данных

как это -

<DataGrid.ItemsSource> 
       <CompositeCollection> 
        <CollectionContainer Collection="{Binding temperature}" /> 
        <CollectionContainer Collection="{Binding time}" /> 
        <CollectionContainer Collection="{Binding rate}" /> 
       </CompositeCollection> 
</DataGrid.ItemsSource> 
Смежные вопросы