2009-11-23 3 views
0

를 새로 나는WPF 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]; 
     } 
    } 

그러나 나는 목록에 새로운 데이터를 추가 한 후 내 데이터를 새로 고칠 수 있어야 데이터 그리드에 ArrayList에 바인딩하려면 다음 코드를 사용합니다.

datagrid.Items.Refresh() 작동하지 않습니다 ...

감사합니다!

+0

도 참조 할 때 둘째, 그리드 업데이트됩니다 http://stackoverflow.com/questions/1751897/how-to-get-the-wpf- 툴킷 -DataGrid-to-show-new-rows-when-bound-to-dataset –

+0

UI 스레드에서 DataTable을 업데이트하고 있습니까? –

답변

2

먼저 ArrayList가 아닌 DataTable을 반환합니다. 당신이 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])   
     } 
    } 
+0

감사합니다.이 뷰를 itemsource로 다시로드 한 후에 문제가 해결되었습니다. – WtFudgE

관련 문제