У меня есть родительский класс, определенный следующим образом:
using System.Collections.Generic;
namespace Test
{
public class GeneralClass
{
public class Parent
{
public string Parent_Name { get; set; }
public List<Child> List_Child { get; set; } = new List<Child>();
}
public class Child
{
public string Child_Name { get; set; }
}
}
}
Обратите внимание, что Child_Name имеет следующий формат: Parent_Name + "-" + целое число.
Затем вВ той же форме я создаю два DataGridView (dt1 и dt2).На dt1 каждая строка показывает Parent_Name, а на dt2 каждая строка показывает Child_Name.У каждого родителя может быть несколько дочерних элементов (список).
Теперь я хочу: - удалить родительский элемент (строку) на dt1, также будут удалены все связанные дочерние элементы в dt2 (но не дочерние элементы другого родителя).).
Пока что я сделал:
// Iteration over selected parents
foreach (DataGridViewRow row_dt1 in dt1.SelectedRows)
{
if (!row.IsNewRow)
{
// Find parent name of actual row
string parent_name = row_dt1.Cells[0].Value.ToString();
// Iteration over all rows of children
foreach (DataGridViewRow row_dt2 in dt2.Rows)
{
// Find child name
object val1 = row_dt2.Cells[0].Value;
// If child name starts with parent name, remove this child from the DataGridView (dt2)
if (val1 != null && val1.ToString().StartsWith(parent_name + "-"))
{
dt2.Rows.Remove(row_dt2);
}
}
// Now remove the parent from dt1
dt1.Rows.Remove(row_dt1);
}
}
Он удалял выбранного родителя, как и ожидалось, но удалял только первого потомка этого родителя (но не остальных).Где я сделал не так?
Большое спасибо!