引用多个数据表的下拉列表
本文关键字:下拉列表 数据表 引用 | 更新日期: 2023-09-27 18:04:53
我正在创建一个WMI程序,该程序将查询输出到数据表,然后输出到数据网格。我想创建一个历史下拉列表,它将当前日期和时间作为一个项目,并将刚刚创建的数据表克隆为"值"。
选择下拉列表中的项会将数据网格更改为当时运行的任何先前的数据表。
这里的代码到目前为止,但我不确定如何添加数据表作为一个字符串或数组?
// copy current data table
DataTable cloneTable = new DataTable();
cloneTable = dt.Copy();
ddlEventhistory.Items.Add(new Data {
Name = DateTime.Now.ToString(),
Value = cloneTable ()
});
ddlEventhistory.DisplayMember = "Name";
ddlEventhistory.ValueMember = "Value";
更新1:这是我的自定义类:
private class Data
{
public string Name { get; set; }
public Object Value { get; set; }
}
更新2:我的下拉列表发生了变化:
private void ddlEventhistory_SelectionChangeCommitted(object sender, EventArgs e)
{
dgEvent.DataSource = (ddlEventhistory.SelectedValue as Data).Value as DataTable;
}
更新3:这是最终代码
private class Data
{
public string Name { get; set; }
public Object Value { get; set; }
}
//History
//take existing data table and copy it's source
DataTable eventhistory = new DataTable();
eventhistory = (DataTable)dgEvent.DataSource;
ddlEventhistory.Items.Add(new Data { Name = DateTime.Now.ToString(), Value = eventhistory });
ddlEventhistory.DisplayMember = "Name";
ddlEventhistory.ValueMember = "Value";
//when drop down list selection is changed do....
private void ddlEventhistory_SelectionChangeCommitted(object sender, EventArgs e)
{
// Assign DataTable of selected ComboBox item to DataGrid.
dgEvent.DataSource = (ddlEventhistory.SelectedItem as Data).Value as DataTable;
}
您可以像这样将数据的副本添加到组合框项中。
//copy current data table
DataTable cloneTable = dt.Copy();
ddlEventhistory.Items.Add(new Data { Name = DateTime.Now.ToString(), Value = cloneTable });
ddlEventhistory.DisplayMember = "Name";
ddlEventhistory.ValueMember = "Value";
然后当用户选择其中一个项目时,你可以像这样在DataGrid中显示它。
private void ddlEventhistory_SelectionChangeCommitted(object sender, EventArgs e)
{
// Assign DataTable of selected ComboBox item to DataGrid.
dgEvent.DataSource = (ddlEventhistory.SelectedItem as Data).Value as DataTable;
}