1
DataSet set1 = new DataSet();
string fileName = "data.xml";
XPathExpression expr;
DataGridView datagridview1 = new DataGridView();
DataGridView datagridview2 = new DataGridView();
public Form1()
{
InitializeComponent();
datagridview1.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(datagridview1_CellContentClick);
//datagridview1.SelectionChanged += new EventHandler(datagridview1_SelectionChanged);
datagridview1.SetBounds(100, 100, 200, 400);
datagridview2.SetBounds(400, 100, 200, 400);
this.Controls.Add(datagridview1);
this.Controls.Add(datagridview2);
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
XPathDocument doc = new XPathDocument(fileName);
XPathNavigator nav = doc.CreateNavigator();
expr = nav.Compile("/Groups/Group/Name");
XPathNodeIterator iterator = nav.Select(expr);
DataTable dt = new DataTable();
dt.Columns.Add("Groups",typeof(string));
while (iterator.MoveNext())
{
XPathNavigator nav2 = iterator.Current.Clone();
dt.Rows.Add(nav2.Value);
}
BindingSource source1 = new BindingSource();
source1.DataSource = dt;
datagridview1.DataSource = source1;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
private void datagridview1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
try
{
string value = datagridview1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
XPathDocument doc = new XPathDocument(fileName);
XPathNavigator nav = doc.CreateNavigator();
expr = nav.Compile("/Groups/Group[Name='" + value + "']/Item");
XPathNodeIterator iterator = nav.Select(expr);
DataTable dt = new DataTable();
dt.Columns.Add("Item", typeof(string));
while (iterator.MoveNext())
{
XPathNavigator nav2 = iterator.Current.Clone();
dt.Rows.Add(nav2.Value);
}
BindingSource source1 = new BindingSource();
source1.DataSource = dt;
datagridview2.DataSource = source1;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}

0
Thanks, with your solution only the Items of the selected group are shown.
But if I change or add a new Items in datagridview2 it disapears when I change to an other group and then come back to the group where the Item changed/added before.
Also before I could write the changed data back to xml with set1.WriteXml(filePath);