复杂DataBinding接受IList或IListSource作为数据源

时间:2015-05-30 08:17:22

标签: c# list datatable dataset enumeration

我想将组的值绑定到DataTable dt1 = new DataTable()。之后,我想将DataTable数据绑定到DataGrid。但我无法做到。当我直接将数据源作为组给予datagrid时,我得到了“复杂数据绑定作为IList或IListSource的数据源接受”的例外。

private void BindGrid()
    {
        var dt = new DataTable();
        dt.Columns.Add("Date",typeof(string));
        dt.Columns.Add("Name",typeof(string));
        dt.Columns.Add("City",typeof(string));
        dt.Columns.Add("Mobile",typeof(string));
        dt.Rows.Add("1/11/2014", "David", "Noida", "Bsnl");
        dt.Rows.Add("1/11/2014", "James", "Mumbai", "Airtel");
        dt.Rows.Add("30/1/2015", "Ramesh", "Pune", "Vodafone");
        dt.Rows.Add("30/1/2015", "Kamal", "Kolkata", "Idea");
        dt.Rows.Add("15/5/2015", "Mahesh", "Chennai", "Reliance");
        var groups = (
        from DataRow row in dt.AsEnumerable()
        select new
        {
            date = row.Field<string>("Date")
        }
        ).Distinct();

        DataTable dt1 = new DataTable();

        dataGrid1.DataSource = groups;

    }

1 个答案:

答案 0 :(得分:0)

您可以将dt绑定到DataGrid,如下所示:

dataGrid1.DataContext = dt.DefaultView;

在您的XAML中:

<DataGrid x:Name="dataGrid1" ItemsSource={Binding}"/>

DefaultViewDataView,实现IList

就你的其他代码而言,我不知道你在做什么。例如,这一行的目的是什么:

DataTable dt1 = new DataTable();

您对dt1无效。