2013-10-08 56 views
0

我有一個WinForms應用程序下面的代碼,如預期其工作原理:Winforms代碼爲datatable - 什麼是WPF等價物?

private void btnFetchCollections_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     var scDal = new SiteCollectionDal(); 
     var dt = new DataTable(); 

     List<SiteCollectionEntity> siteCollections = scDal.FetchSiteCollections(); 

     dt.Columns.Add(new DataColumn("Site Name", typeof(string))); 

     foreach (SiteCollectionEntity siteCollectionEntity in siteCollections) 
     { 
      DataRow row = dt.NewRow(); 

      row["Site Name"] = siteCollectionEntity.Url; 

      dt.Rows.Add(row); 

      dt.AcceptChanges(); 
     } 

     dataSiteCollections.DataSource = dt; 

    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
} 

現在我建立一個新的WPF界面爲這個項目,下面不工作 - 我應該如何逼近這個?

private void btnFetchSiteCollections_Click(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
     var scDal = new SiteCollectionDal(); 
     var dt = new DataTable(); 

     List<SiteCollectionEntity> siteCollections = scDal.FetchSiteCollections(); 

     dt.Columns.Add(new DataColumn("Site Name", typeof(string))); 

     foreach (SiteCollectionEntity siteCollectionEntity in siteCollections) 
     { 
      DataRow row = dt.NewRow(); 

      row["Site Name"] = siteCollectionEntity.Url; 

      dt.Rows.Add(row); 

      dt.AcceptChanges(); 
     } 

     dataSiteCollections.ItemsSource = dt; 

    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString()); 
    } 
} 

我收到的錯誤是以下行:

dataSiteCollections.ItemsSource = dt; 

那就是:

無法將源類型 'System.Data.DataTable' 爲目標類型 'System.Collections.IEnumerable'

+0

嘗試插入一個'.ToList();'這樣的:'dataSiteCollections.ItemsSource = dt.ToList();' – Tico

+0

@Tico這只是給出了錯誤「無法解析符號 'ToList' – Codingo

+0

可能重複的[DataTable作爲DataGrid.ItemsSource](http://stackoverflow.com/questions/14942105/datatable-as-datagrid-itemssource) – Shoe

回答

1

試試這個:

dataSiteCollections.ItemsSource = dt.AsDataView(); 
相關問題