0

期待どおりに動作する Winforms アプリケーションに次のコードがあります。

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' に変換できません

4

1 に答える 1

1

これを試して:

dataSiteCollections.ItemsSource = dt.AsDataView();
于 2013-10-08T04:13:20.737 に答える