2012-09-02 3 views
0

Я Databinding коллекцию объектов в DataGridView следующим образом:C# Databinding коллекция суб объектов

public BindingList<Selection> selections = new BindingList<Selection>(); 
    dgvSelections.DataSource = selections; 
    if (!mainForm.selections.Contains(mySelection)) 
    { 
     mainForm.selections.Add(mySelection); 
     mainForm.dgvSelections.Refresh();       
    } 
    else 
    { 
     int index = mainForm.activeArbSelections.IndexOf(mySelection); 
    } 

Объект 'Selection' выглядит следующим образом:

public class Selection : INotifyPropertyChanged, IComparable 
{ 

    private Int64 id; 
    public Int64 ID 
    { 
     get { return id; } 
     set 
     { 
      id = value; 
     } 
    } 

    public SortedDictionary<Int64, Quote> quotes = new SortedDictionary<Int64, Quote>(); 
    public SortedDictionary<Int64, Quote> Quotes 
    { 
     get { return quotes; } 
     set 
     { 
      quotes = value; 
      NotifyPropertyChanged("quotes"); 
     } 
    } 

«Цитировать "объект выглядит следующим образом:

public class Quote 
{ 
    public string name; 
    public Int64 ID; 

Когда я в« привязку коллекции опций пункта к datagridvie dgvSelections w и добавьте выбор в коллекцию, datagridview показывает переменную ID в datagridview, а затем просто отображает текст «Коллекция» для объекта «кавычки» в качестве заполнителя, или типа объекта, или чего-то еще.

Как я могу заставить datagridview отображать следующее: для каждой строки (выбора) ячейки для каждой цитаты в коллекции «кавычки», отображающей имя и идентификатор цитаты? На самом деле, я был бы достаточно доволен ячейкой для каждой цитаты и какой-то конкатенированной текстовой переменной, отображающей имя и идентификатор в виде строки или чего-то еще. На всякий случай: разные строки (выбор) могут иметь различное количество связанных с ним кавычек.

В принципе, я могу показать каждый выбор в отдельной строке и иметь все соответствующие переменные в этом выборе, затуманенные в datagridview, но я не зацикливаюсь, не показывая все кавычки в коллекции кавычек в каждом из этих вариантов ,

Буду признателен за любые указатели на все это. Спасибо.

ответ

1

Это то, что вы должны искать - Binding to second level property of a source

+0

Genericised версия этого решения: http://social.msdn.microsoft.com/Forums/en-US/winformsdatacontrols/thread/2e8f6214-e242-4a81 -b49e-50bce1ee3bfe –

Смежные вопросы