我创建的数据网格不会让我清除值。当我尝试执行datagrid.columns.clear();
时,它会将行压缩在一起,并且除了行以外不显示任何内容,并且仍然无法清除。
我尝试使用datagrid.items.clear();
来Datagrid.items.add();
向我的数据网格添加项目。我尝试过datagrid.items.refresh();
并将datacontext设置为null。这些都不起作用。
public void FillDataGridWithCustInfo()
{
CustomerDataGrid.Items.Clear();
CustomerDataGrid.ItemsSource = null;
CustomerDataGrid.Items.Refresh();
int ArrayNum = 0;
Int32 length = CustomerFirstName.Count;
while (length > ArrayNum)
{
CustomerInformation TempCust = new CustomerInformation();
TempCust.FirstName = CustomerFirstName[ArrayNum];
TempCust.MiddleInital = CustomerMiddleInitial[ArrayNum];
TempCust.LastName = CustomerLastName[ArrayNum];
TempCust.TaxClass = CustomerTaxClass[ArrayNum];
TempCust.Email = CustomerEmail[ArrayNum];
CustomerDataGrid.Items.Add(TempCust);
ArrayNum = ArrayNum + 1;
}
}
当我关闭该特定窗口时,我希望它在填充数据网格之前先将其清除,但是当前它正在获取数据网格中的所有数据并只是添加到数据网格中,所以我得到的所有信息都是重复的。
答案 0 :(得分:0)
我不确定datagrid是否被桌面应用程序使用,在Web应用程序中,我们有一个类似于gridview的对象调用,该对象将数据显示为表格格式。如果要强制清除所有行,则可以分配一个空数据表或虚拟数据表,如下所示即可解决问题。
GridView1.DataSource = new DataTable();
GridView1.DataBind();
如果您要维护适当的列标题,而只想删除包含数据的行,请确保正确构造数据表。类似这样的东西。
DataTable dt = new DataTable();
dt.Columns.Add("Column1", Type.GetType("System.String"));
dt.Columns.Add("Column2", Type.GetType("System.String"));
GridView1.DataSource = dt;
GridView1.DataBind();