DataBinding met strongly typed collections

Pagina: 1
Acties:

  • Ruudjah
  • Registratie: November 1999
  • Laatst online: 06-09-2025
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:
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

TweakBlog