动态更新DataGrid行

时间:2012-11-12 14:53:11

标签: c# wpf datagrid

我有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不同时)。

1 个答案:

答案 0 :(得分:1)

使用ObservableCollection。它会在添加,删除项目或刷新整个列表时提供通知:

files = new ObservableCollection<SearchFile>();