我有DataGrid
这样:
class SearchFile
{
public string path { set; get; }
public int count { set; get; }
}
//...
files = new List<SearchFile>();
DataGridTextColumn col1 = new DataGridTextColumn();
DataGridTextColumn col2 = new DataGridTextColumn();
col1.Header = "File";
col2.Header = "count";
col1.Binding = new Binding("path");
col2.Binding = new Binding("count");
dataGrid1.Columns.Add(col1);
dataGrid1.Columns.Add(col2);
我这样做是为了填充项目来源:
foreach(var file in allFiles)
{
SearchFile sf = new SearchFile() { path=file, count=c };
files.Add(sf);
}
以上是将多次启动的事件处理程序的一部分。我在哪里将files
绑定到ItemsSource
属性,以便动态更新?我尝试将它放在foreach循环之后,但只有第一次运行才有效,并且网格在后续运行时不会改变(当allFiles
不同时)。
答案 0 :(得分:1)
使用ObservableCollection
。它会在添加,删除项目或刷新整个列表时提供通知:
files = new ObservableCollection<SearchFile>();