我有兩個xml文件。如果您從下拉列表中選擇,則XML文件中的數據將被移入表格中。但是,只有當我點擊第二個時才工作第一個XML文件,然後沒有任何反應,表格沒有填充。我的錯誤在哪裏?數據不會在列表視圖中傳輸
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listView1.SelectedItems.Count > 0)
{
ListViewItem lv = listView1.SelectedItems[0];
textBox1.Text = lv.SubItems[1].Text;
textBox2.Text = lv.SubItems[2].Text;
textBox3.Text = lv.SubItems[3].Text;
}
}
private void comboBox1_SelectedIndexChanged_1(object sender, EventArgs e)
{
if (comboBox1.SelectedIndex == 0)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
ds.ReadXml(@"C:\XMLFile1.xml");
dt = ds.Tables[0];
if (dt.Rows.Count > 0)
{
int i = 0;
foreach (DataRow Dr in dt.Rows)
{
ListViewItem lv = new ListViewItem(dt.Rows[i]["ID"].ToString());
lv.SubItems.Add(dt.Rows[i]["Name"].ToString());
lv.SubItems.Add(dt.Rows[i]["group"].ToString());
lv.SubItems.Add(dt.Rows[i]["document"].ToString());
i++;
listView1.Items.Add(lv);
}
}
if (comboBox1.SelectedIndex == 1)
{
DataSet ds1 = new DataSet();
DataTable dt1 = new DataTable();
ds1.ReadXml(@"C:\XMLFile1.xml");
dt1 = ds1.Tables[0];
if (dt1.Rows.Count > 0)
{
int i = 0;
foreach (DataRow qw in dt1.Rows)
{
ListViewItem lv = new ListViewItem(dt1.Rows[i]["ID"].ToString());
lv.SubItems.Add(dt1.Rows[i]["Name"].ToString());
lv.SubItems.Add(dt1.Rows[i]["group"].ToString());
lv.SubItems.Add(dt1.Rows[i]["document"].ToString());
i++;
listView1.Items.Add(lv);
}
}
}
代碼可能沒有任何問題。 ListView沒有意識到控件發生了任何更改,因此控件不會刷新。通常在填充之前清理行將有所幫助。 clear方法調用將刷新控件的控件paint方法,然後添加新的數據可能會起作用。 – jdweng
但是,如果我只是選擇將填寫表中的第二個文件,它將是空的。在第一個或第二個xml文件中填入表 – axay
如果僅將第二個xml文件添加到ListView而不添加第一個文件,會發生什麼? – jdweng