Я пытаюсь привязать коллекцию (которая наследуется от BindingList) к DataGridView. Заголовки сетки отображаются хорошо, и я получаю количество строк, которые я ожидаю. Однако ячейки пусты. У кого еще возникла эта проблема? Если да, то как вы его разрешили? Я разговаривал с кем-то, у кого была такая же проблема, но они не могут вспомнить, как они это разрешили. Я попытался создать простую версию, которая показывает проблему, но не повезло. Так что извините, я не включил никакого кода.Строки DataGridView отображаются, но нет данных
EDIT # 1:
Я не думаю, что этот код поможет, но только в том случае. У меня есть упрощенные вещи, чтобы избежать необходимости наметить 47 слоев нашего кода. Но, как я уже сказал, я не могу воссоздать проблему с помощью очень простого примера. Я действительно не хочу анализировать код - просто слова мудрости от тех, кто столкнулся с этой проблемой. Конечно, я не единственный.
public interface ISearchResultCollection : IList<ISearchResult>
{
...
}
public class SearchResultCollection : BindingList<ISearchResult>, ISearchResultCollection
{
...
}
public interface ISearchResult
{
ILineNum LineNumber {get; set;}
string Text {get; set;}
}
public class SearchResult
{
...
}
ISearchResultCollection results = objectToSearch.Find("searchstring");
dataGridView1.DataSource = results;
EDIT # 2:
Я думаю, что у меня есть преимущество. Все публичные свойства моего интерфейса, которые представляют элемент (ISearchResult), также являются типами интерфейсов. Я добавил свойство string, и его данные волшебным образом появляются. Итак, в приведенном выше примере будут отображаться данные в текстовом столбце. Но данные столбца LineNumber не будут, поскольку он имеет тип интерфейса (ILineNum). Я решил, что ToString() будет вызван, чтобы заполнить сетку. Какие-нибудь идеи сейчас?
Можете ли вы привести больше примеров объектов, которые вы пытаетесь связать? Например, как выглядит «коллекция, наследующая от BindingList»? Как вы привязываете свой объект к DataGridView? Непосредственно или через BindingSource? Вы уверены, что у вашего объекта есть данные внутри него? Это очень сложно ответить без кода для анализа. :) –
Я внес некоторые изменения, чтобы включить оболочку кода. Я не уверен, что это поможет. Я проверил, что в отладчике есть данные. – bsh152s