Set*_*eno 7 .net c# data-binding wpf dapper
这是我的代码.它生成具有正确行数的绑定网格,但单元格为空.
XAML
<DataGrid
  Name="grid" 
  ItemsSource="{Binding}"
  AutoGenerateColumns="True" />
代码背后
grid.DataContext = cn.Query("select * from SomeTable");
所以我猜答案是:这是不可能的.这是一个hacky解决方法.
        ...
        var items = cn.Query("select * from SomeTable");
        grid.DataContext = ConvertToDataTable(items);
    }
    public DataTable ConvertToDataTable(IEnumerable<dynamic> items) {
        var t = new DataTable();
        var first = (IDictionary<string, object>)items.First();
        foreach (var k in first.Keys)
        {
            var c = t.Columns.Add(k);
            var val = first[k];
            if (val != null) c.DataType = val.GetType();
        }
        foreach (var item in items)
        {
            var r = t.NewRow();
            var i = (IDictionary<string, object>)item;
            foreach (var k in i.Keys)
            {
                var val = i[k];
                if (val == null) val = DBNull.Value;
                r[k] = val;
            }
            t.Rows.Add(r);
        }
        return t;
    }
| 归档时间: | 
 | 
| 查看次数: | 3639 次 | 
| 最近记录: |