Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Filling combobox with dataTable

Status
Not open for further replies.

MichelVanderbeke

Programmer
Jun 21, 2017
3
BE
Hello,

I am not able to fill up a combobox in a datagrid with data from a dataTable. What am I doing wrong?

XAML:

<DataGrid x:Name="dgContactgegevens" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2" Grid.RowSpan="2" Margin="10,10,10,10" RowBackground="LightYellow" AlternatingRowBackground="LightBlue" ItemsSource="{Binding dtContactgegevens}" AutoGenerateColumns="False" IsReadOnly="True" SelectionMode="Single">
<DataGrid.Columns>
<DataGridTextColumn Header="ContactgegevenID"
Binding="{Binding ContactgegevenID}">
</DataGridTextColumn>
<DataGridTextColumn Header="Contact"
Binding="{Binding ContactgegevenContact}">
</DataGridTextColumn>
<DataGridTemplateColumn Header="Contactsoort">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox
ItemsSource="{Binding dtContactsoorten}"
DisplayMemberPath="Contactsoortnaam"
SelectedValuePath="ContactsoortID"
SelectedValue="{Binding Contactgegevencontactsoort, Mode=TwoWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Contactlijn"
Binding="{Binding ContactgegevenContactlijn}">
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
Code behind:

private void Window_Loaded(object sender, RoutedEventArgs e)
{
MaakTabellen();
VulTabellen();
ToonGegevens();
}

private void MaakTabellen()
{
dtContacten = new DataTable("Contacten");
dtContactsoorten = new DataTable("Contactsoorten");
dtContactgegevens = new DataTable("Contactgegevens");

dsContacten.Tables.Add(dtContacten);
dsContacten.Tables.Add(dtContactsoorten);
dsContacten.Tables.Add(dtContactgegevens);

DataColumn ContactID = new DataColumn("ContactID");
ContactID.AllowDBNull = false;
ContactID.AutoIncrement = true;
ContactID.AutoIncrementSeed = 1;
ContactID.AutoIncrementStep = 1;
ContactID.DataType = typeof(int);
ContactID.Unique = true;

dtContacten.Columns.Add(ContactID);
dtContacten.PrimaryKey = new DataColumn[] { dtContacten.Columns["ContactID"] };

DataColumn Naam = new DataColumn("Naam");
Naam.DataType = typeof(string);

dtContacten.Columns.Add(Naam);

DataColumn ContactsoortID = new DataColumn("ContactsoortID");
ContactsoortID.AllowDBNull = false;
ContactsoortID.AutoIncrement = true;
ContactsoortID.AutoIncrementSeed = 1;
ContactsoortID.AutoIncrementStep = 1;
ContactsoortID.DataType = typeof(int);
ContactsoortID.Unique = true;

dtContactsoorten.Columns.Add(ContactsoortID);
dtContactsoorten.PrimaryKey = new DataColumn[] { dtContactsoorten.Columns["ContactsoortID"] };

DataColumn ContactsoortNaam = new DataColumn("ContactsoortNaam");
ContactsoortNaam.DataType = typeof(string);
dtContactsoorten.Columns.Add(ContactsoortNaam);

DataColumn ContactgegevenID = new DataColumn("ContactgegevenID");
ContactgegevenID.AllowDBNull = false;
ContactgegevenID.AutoIncrement = true;
ContactgegevenID.AutoIncrementSeed = 1;
ContactgegevenID.AutoIncrementStep = 1;
ContactgegevenID.DataType = typeof(int);
ContactgegevenID.Unique = true;

dtContactgegevens.Columns.Add(ContactgegevenID);
dtContactgegevens.PrimaryKey = new DataColumn[] { dtContactgegevens.Columns["ContactgegevenID"] };

DataColumn ContactgegevensContact = new DataColumn("ContactgegevenContact");
ContactgegevensContact.DataType = typeof(int);
dtContactgegevens.Columns.Add(ContactgegevensContact);

DataColumn ContactgegevensContactsoort = new DataColumn("ContactgegevenContactsoort");
ContactgegevensContactsoort.DataType = typeof(int);
dtContactgegevens.Columns.Add(ContactgegevensContactsoort);

DataColumn ContactgegevensContactlijn = new DataColumn("ContactgegevenContactlijn");
ContactgegevensContactlijn.DataType = typeof(string);
dtContactgegevens.Columns.Add(ContactgegevensContactlijn);
}

private void VulTabellen()
{
ToevoegenDataContact("Vanderbeke", "Michel", "Carmersstraat", "103", "8000", "Brugge", "België", "1950/11/28");

ToevoegenDataContactgegeven(1, 1, "050334089");
ToevoegenDataContactgegeven(1, 2, "0476395012");
ToevoegenDataContactgegeven(1, 3, "michel.vanderbeke@outlook.com");
ToevoegenDataContactgegeven(1, 4, "
ToevoegenDataContactsoort("Vaste telefoon");
ToevoegenDataContactsoort("Mobiele telefoon");
ToevoegenDataContactsoort("E-mail adres");
ToevoegenDataContactsoort("Website");

dsContacten.Relations.Add(dsContacten.Tables["Contactsoorten"].Columns["ContactsoortID"], dsContacten.Tables["Contactgegevens"].Columns["ContactgegevenContactsoort"]);

DataColumn dataColumnParent = dsContacten.Tables["Contacten"].Columns["ContactID"];
DataColumn dataColumnChild = dsContacten.Tables["Contactgegevens"].Columns["ContactgegevenContact"];

DataRelation datarelatieContacten = new DataRelation("relatieContacten_Contactgegevens", dataColumnParent, dataColumnChild);
dsContacten.Relations.Add(datarelatieContacten);
}

private void ToevoegenDataContact(string naam, string voornaam, string straat, string huisnummer, string postcode, string plaats, string land, string geboortedatum)
{

DataRow nieuwContact = dsContacten.Tables["Contacten"].NewRow();

nieuwContact["Naam"] = naam;

dtContacten.Rows.Add(nieuwContact);
}

private void ToevoegenDataContactsoort(string contactsoortNaam)
{
DataRow nieuweContactsoortNaam = dsContacten.Tables["Contactsoorten"].NewRow();

nieuweContactsoortNaam["ContactsoortNaam"] = contactsoortNaam;

dtContactsoorten.Rows.Add(nieuweContactsoortNaam);
}

private void ToevoegenDataContactgegeven(int contact, int contactsoort, string contactlijn)
{

DataRow nieuwContactgegeven = dsContacten.Tables["Contactgegevens"].NewRow();

nieuwContactgegeven["ContactgegevenContact"] = contact;
nieuwContactgegeven["ContactgegevenContactsoort"] = contactsoort;
nieuwContactgegeven["ContactgegevenContactlijn"] = contactlijn;

dtContactgegevens.Rows.Add(nieuwContactgegeven);
}

private void ToonGegevens()
{
dgContactgegevens.ItemsSource = dtContactgegevens.DefaultView;
}
}

Can someone help Me?

Thank you

Michel
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top