Die Bindung an BindingList<T> - wählen Sie, was Sie zu binden?
Sagen, ich habe eine business-Objekt "Sample" und ich habe BindingList der Proben. Eine Probe hat 4 Eigenschaften.
Kann ich auswählen, welche Eigenschaften sind gebunden an die DataGrid-oder gibt es keine option zum anpassen, der so ein Ding?
HINWEIS:
Ich bin mit Compact Framework, wo KEINE DataGridView, sowie Autogenerate-Eigenschaft und die DataMember-Eigenschaft.
Bitte beachten Sie dies, während der Antworten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese anzeigen soll jede öffentliche Eigenschaft als Spalte im DataGridView.
Wenn Sie ändern möchten, welche Eigenschaften angezeigt werden, müssen Sie Folgendes tun sowie:
und gehe in die Eigenschaften des datagridview, fügen Sie die Spalten manuell und setzen Sie die DataPropertyName dem Namen der Eigenschaft.
Wenn Sie die datagridview-Eigenschaft im code, die folgende erstellen und hinzufügen einer Spalte im dgv.
BEARBEITEN
Dies SOLLTE Ihnen etwas näher zu dem, was Sie wollen. Jedoch, weil es verwendet eine anonyme Klasse, die Sie nicht verwenden können, BindingList (die ich kenne). Alternativ können Sie erstellen eine SampleBinding Klasse, die nur die Eigenschaften angezeigt werden sollen, und erzeugen Sie diese aus der Liste der normalen Proben.
EDIT 2
Habe ich bearbeitet diese ein paar verschiedene Möglichkeiten, hoffentlich ist dies hilfreich.
Die erste option, als Justin erwähnt, ist, AutoGennerateColumns = false, und tun Sie es von dort manuell. Wenn Sie binden Sie es, die Laufzeit an, erstellen Sie Spalten für alle öffentlichen Eigenschaften der Probe. Wenn Sie möchten, um Sie zu entfernen, können Sie dies mit der
Diese Lösung ist etwas problematisch, da Sie benötigen, um zu halten es aktualisiert, und explizit Elemente entfernen.
Justin ' s Edit 2 option der Einstellung der Browsable-Attribut auf false die Eigenschaft ist interessant, ich habe nicht versucht, vor.
Die Lösung, dass ich am Ende mit, und ich denke, dass funktioniert Recht gut, dreht sich um eine Schnittstelle.
Hatte ich zwei verschiedene DataGridViews, die benötigt werden, um die gleichen Daten, aber ein-und ausblenden der verschiedenen Spalten jedes mal. In diesem Fall würden Sie tun:
Dann erstellen Sie Ihre Sample-Sammlung mit
binden und, die.
Wenn Sie möchten, um Spalten hinzuzufügen, die Sie später fügen Sie Sie einfach auf die entsprechende Schnittstelle.
Dies funktionierte gut für mein Projekt, lassen Sie mich wissen, was Sie denken.
Ich nehme an, du meinst DataGrid in WinForms, aber das gleiche gilt für die meisten bindbare Steuerelemente.
Ja, Sie können dies tun. Die Art und Weise, dies zu tun ist ein 2-Schritt-Prozess,
BindingList<T>
.