Ik heb een collection BindingList<Project> Projects. Een project heeft een ProjectLead, een property van het type Consultant. Een datagridview dgvProjects in gebind aan Projects. Nu wil ik dat er een DataGridViewColumn wordt toegevoegd, waar uit alle (BindingList<Consultant>) Consultants kan worden gekozen. Dat gebeurt met:
Het effect is als verwacht: in ieder project item in de datagridview kan ik kiezen uit een Consultant in de ProjectLead column.
Maar: nu is deze column niet gebind aan projectLead. Ik dacht dit met
te kunnen doen. de datagridview is gebind aan Projects, welke een property ProjectLead heeft met subproperty ID. Omdat valuemember staat ingesteld op "Name", zou hij automatisch de naam van de huidige ProjectLead moeten weergeven. Dit gebeurt alleen niet, hij geeft alleen een lege combobox. Maw, hij zoek de naam niet op om hem vervolgens te laten zien.
Hoe zorg ik er nu voor dat het ID van de ProjectLead gebind wordt aan de valuemember?
Excuus voor de topictitel
code:
1
2
3
4
5
6
7
| DataGridViewComboBoxColumn colProjectLead = new DataGridViewComboBoxColumn();
colProjectLead.HeaderText = "ProjectLead";
colProjectLead.Name = "ProjectLead";
colProjectLead.DataSource = Data.Instance.Consultants;
colProjectLead.DisplayMember = "Name";
colProjectLead.ValueMember = "ID";
this.dgvProjects.Columns.Add(colProjectLead); |
Het effect is als verwacht: in ieder project item in de datagridview kan ik kiezen uit een Consultant in de ProjectLead column.
Maar: nu is deze column niet gebind aan projectLead. Ik dacht dit met
code:
1
| colProjectLead.DataPropertyName = "ProjectLead.ID"; |
te kunnen doen. de datagridview is gebind aan Projects, welke een property ProjectLead heeft met subproperty ID. Omdat valuemember staat ingesteld op "Name", zou hij automatisch de naam van de huidige ProjectLead moeten weergeven. Dit gebeurt alleen niet, hij geeft alleen een lege combobox. Maw, hij zoek de naam niet op om hem vervolgens te laten zien.
Hoe zorg ik er nu voor dat het ID van de ProjectLead gebind wordt aan de valuemember?
Excuus voor de topictitel