В моем проекте WPF я отображаю данные из Списка класса в DataGrid. Каждый раз, когда информация из этого списка изменяется, DataGrid обновляется.
Это работает правильно, когда новый элемент добавляется в список, когда элемент изменяется и даже работает, когда элемент удаляется. Однако, когда элемент удаляется, он также генерирует сообщение типа MessageBox, в котором говорится, что «ссылка на объект не установлена для экземпляра объекта». Кажется, что функция работает полностью так, как задумано, но мне нужно, чтобы это всплывающее сообщение перестало появляться.
private void VerwijderGezinButton_Click(object sender, RoutedEventArgs e)
{
if (DataGridXML.SelectedIndex < 0)
return;
Gezin gezin = (Gezin)DataGridXML.SelectedItem;
Gezinnen.Remove(gezin);
DataGridPersonen.SelectedIndex = -1;
DataGridXML.Items.Refresh();
SaveToFile();
}
DataGridPersonen - это вторая DataGrid, которая отображает список другого класса внутри отдельных экземпляров элемента в списке gezinnen.
Гезиннен назначается в классе как этот
internal List<Gezin> Gezinnen { get; set; } = new List<Gezin> { };
Гезин определяется как таковой
[Serializable]
class Gezin
{
public string Naam { get; set; }
public string Prijs { get; set; }
public int Kinderen { get; set; }
public List<Volwassene> Volwassenen { get; set; }
public Gezin(string naam, int aantalKinderen)
{
Naam = naam;
Volwassenen = new List<Volwassene> { };
Prijs = "n/a";
Kinderen = aantalKinderen;
}
public void VoegVolwasseneToe(string naam, DateTime geboorteDatum)
{
Volwassenen.Add(new Volwassene(naam, geboorteDatum.ToShortDateString()));
}
public void VerwijderVolwassene(Volwassene persoon)
{
try
{
Volwassenen.Remove(persoon);
}
catch (Exception err)
{
MessageBox.Show("ERROR:\n\n" + err.Message);
}
}
}
и Вольвассен
[Serializable]
class Volwassene
{
public string Voornaam { get; set; }
public string GeboorteDatum { get; set; }
public Volwassene(string voornaam, string geboorteDatum)
{
Voornaam = voornaam;
GeboorteDatum = geboorteDatum;
}
}
Когда я использую режим отладки Visual Studio и запускаю код построчно, это сообщение появляется точно на DataGridXML.Refresh();
Кажется, что сами переменные изменяются правильно при проверке в режиме отладки.
Мне нужно найти более подробное сообщение об ошибке или способ остановить это сообщение.