最近做一个项目,用wpf mvvm实现,而前台表格需要根据数据库某表的设置不同生成不同的列名。过去用winform和Ado.net实现这种功能的时候就只需要拼装DataTable,拼成最后需要的表格,然后再根据DataTable的列名动态去添加winform的列。现在改用linq to entity 了,写起来是方便了写,逻辑也更加清晰了,不过随之而来也遇见很多问题,绑定对象ItemSorce虽然也可以指定为DataTable,但是总希望程序能够更加面向对象化,而实体的属性都是固定的,怎么办,于是想到了C#4.0的dynamic,搜集了下资料,发现实现起来还蛮简单的。

                dynamic p = new ExpandoObject();
                ((IDictionary<string, object>)p).Add("Name", "aaaa");
                ((IDictionary<string, object>)p).Add("Age", 55);

文笔不好,不多写了。还是上传个Demo大家自己看吧.

https://files.cnblogs.com/wangyinhuo/WpfMvvmApplication1.rar