Click here to Skip to main content
15,883,558 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi,

i am using a datagrid to edit an observablecollection of persons. Therefore i also have a dictionary of persons (same type). So when i write the lastname in a cell i want that after
edit ends (on enter) the software searches in the dictionary for an existing entry and replaces the Person in my collection. Therefore i hang into the celleditending Event and execute following code:

C#
private void dgPersons_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
  if (e.Column.DisplayIndex == 1) //Name Column
  {
    string Name = ((TextBox)e.EditingElement).Text.ToLower();
    var dict = App.Dict.Where(p=> p.Name.ToLower() == name.ToLower()).ToList();
    if (dict.Count > 0)
      dgPersons.SelectedItem = dict[0];
    else
    {
      MessageBox.Show("Cannot find Event: " + name, "Not Found");
      e.Cancel = true;
      ((TextBox)e.EditingElement).Text = "";
    }
  }
}


If i do it like that nothing happens, if i add the Person to my observablelist the Person appears in the datagrid but also the entered before.
Can anyone help me out with this Problem?

Kind Regards
Manu
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900