我使用以下代码将arraylist绑定到datagrid
//fill datagrid
public DataTable configData
{
get
{
DataSet dsTemp = new DataSet();
DataTable Tables = new DataTable();
dsTemp.Tables.Add(Tables);
dsTemp.Tables[0].Columns.Add("val", System.Type.GetType(
"System.String" ) );
foreach (string str in IMDB.ML.Class.Config.getReadPaths())
{
if (str != string.Empty)
{
DataRow myRow = dsTemp.Tables[0].NewRow();
myRow[0] = str;
dsTemp.Tables[0].Rows.Add(myRow);
}
}
return dsTemp.Tables[0];
}
}
但是,在向列表添加一些新数据后,我需要能够刷新数据。
datagrid.Items.Refresh()不起作用......
谢谢!
答案 0 :(得分:2)
首先,返回一个DataTable,而不是一个ArrayList。 第二,如果您使用DataView,您的网格将在数据更新时更新...
//fill datagrid
public ICollectionView configData
{
get
{
DataTable table = new DataTable();
table.Columns.Add("val", typeof(string) );
foreach (string str in IMDB.ML.Class.Config.getReadPaths())
{
if ( !string.IsNullOrEmpty( str ) )
{
DataRow myRow = table.NewRow();
myRow["val"] = str;
table.Rows.Add(myRow);
}
}
return CollectionViewSource.GetDefaultView( dsTemp.Tables[0] )
}
}