2012-11-12 44 views
0

我有一个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); 
      } 

以上是将要推出的事件处理程序的一部分多次。我在哪里绑定filesItemsSource属性,以便它动态更新?我试图把它放在foreach循环之后,但只有第一次运行有效,并且网格在随后的运行中不会改变(当allFiles不同时)。

回答

1

使用ObservableCollection。它提供通知,当物品被添加,删除或整个清单刷新时:

files = new ObservableCollection<SearchFile>();