создать привязку из DataListView к списку, состоящему из списка

#c# #winforms #datagridview

#c# #winforms #datagridview

Вопрос:

Я хочу создать двустороннюю привязку из DataListView к списку, состоящему из списка. Как мне это сделать?

На основе приведенного ниже кода я создаю список, подобный этому:

    probe1 probe2 probe3 probe4 ...
1  12.3   4.2    6.3    12.5 
2  65.2   2.5    12.4   54.6 
3  54.2   64.3   21.5   22.2 
. . .
  
  • Заголовок строки — это строка в значениях. <372 значений
  • Заголовок столбца — это строка в зондах. <120 проб
  • Всего не более 44640 значений, но обычно это несколько тысяч значений

И код

 public IList<Probe> Probes{get;private set;}

public class Probe
{
   public Probe(int maxValues)
   {
      Values = new double[maxValues];
   }
   public IList<double> Values{get;private set}
}
  

Ответ №1:

Сначала вы должны выровнять список. Создайте новый тип, подобный ProbeValue, содержащий как значение свойства:double, так и Probe:Probe. Затем создайте новый CollectionView из сглаженного результата и примените GroupDescription к свойству Probe. Привяжите свой listview к этому

http://msdn.microsoft.com/en-us/library/system.windows.data.collectionview.aspx

Комментарии:

1. CollectionView — это класс из PresentationFramework.dll но мое приложение является WinForms-приложением. Поэтому я не могу его использовать.

2. Ваше право, извините за это. Вы это исправили? codeproject.com/KB/list/ListView_DataBinding.aspx Будет сложно сделать это из коробки. Вы можете либо перезаписать из ListView и рядом с логикой привязки данных выше, также динамически создавать столбцы, хотя это потребует много работы. Другой грязный взлом заключается в предоставлении сжатого списка, где каждая запись имеет X зондов в качестве свойств, где указан только один.