J'essaye de lier une collection (qui hérite de BindingList) à un DataGridView. Les en-têtes de la grille s'affichent bien et le nombre de lignes que j'attends. Cependant, les cellules sont vides. Quelqu'un d'autre a-t-il eu ce problème? Si c'est le cas, comment l'as-tu résolu? J'ai parlé à quelqu'un d'autre qui a eu le même problème mais ils ne peuvent pas se rappeler comment ils l'ont résolu. J'ai essayé de créer une version simple qui montre le problème mais qui n'a pas eu de chance. Je suis désolé, je n'ai inclus aucun code.Les lignes DataGridView s'affichent mais aucune donnée
EDIT # 1:
Je ne pense pas que ce code vous aidera, mais juste au cas où. J'ai simplifié les choses pour éviter de devoir esquisser les 47 couches de notre code. Mais comme je l'ai dit, je ne peux pas recréer le problème avec un exemple très simple comme celui-ci. Je ne veux pas vraiment d'analyse de code - juste des mots de sagesse de ceux qui ont rencontré ce problème. Sûrement je ne suis pas le seul.
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:
Je pense que j'ai une avance. Toutes les propriétés publiques de mon interface représentant un élément (ISearchResult) sont également des types d'interface. J'ai ajouté une propriété de chaîne et ses données apparaissent magiquement. Ainsi, dans l'exemple ci-dessus, les données de la colonne Text apparaîtraient. Mais, les données de la colonne LineNumber ne seraient pas car il s'agit d'un type d'interface (ILineNum). Je pensais que ToString() serait appelé pour remplir la grille sur ceux-ci. Des idées maintenant?
Pouvez-vous donner d'autres exemples d'objets que vous essayez de lier? Par exemple, à quoi ressemble la "collection qui hérite de BindingList"? Comment liez-vous votre objet à DataGridView? Directement ou via une BindingSource? Êtes-vous sûr que votre objet contient des données? Il est très difficile de répondre sans code à analyser. :) –
J'ai fait quelques modifications pour inclure un shell du code. Je ne suis pas sûr que cela aidera beaucoup. J'ai vérifié qu'il y a des données dans le débogueur. – bsh152s