FineUI 官方论坛

标题: 我来贡献点代码,让FineUI数据绑定支持dynamic对象 [打印本页]

作者: 飘移    时间: 2016-5-28 09:19
标题: 我来贡献点代码,让FineUI数据绑定支持dynamic对象
本帖最后由 飘移 于 2016-5-28 09:27 编辑

FineUI非常好用,但是有一个缺点,就是不支持dynamic对象的数据绑定。查了一下源代码,找了解决方案,其实只需要几行代码就可以搞定,这就是开源的好处。
本想直接在CodePlex上贡献代码,但不知道怎么加入项目,直接写在这儿吧,如果三石觉得有用,可以考虑合并在FineUI的下一个版本中。

这是ObjectUtil类的GetPropertyValue方法,加上4行代码,即可实现对dynamic对象的绑定,有需要的朋友可以试试。

  1.         public static object GetPropertyValue(object obj, string propertyName)
  2.         {
  3.             object result = null;

  4.             try
  5.             {
  6.                 if (obj is DataRow)
  7.                 {
  8.                     result = (obj as DataRow)[propertyName];
  9.                 }
  10.                 else if (obj is DataRowView)
  11.                 {
  12.                     result = (obj as DataRowView)[propertyName];
  13.                 }
  14.                 else if (obj is IDictionary<string, object>)    //新增的代码--开始
  15.                 {
  16.                     result = (obj as IDictionary<string, object>)[propertyName];
  17.                 }                                                             //新增的代码--结束
  18.                 else if (obj is JObject)
  19.                 {
  20.                     result = (obj as JObject).Value<JValue>(propertyName).Value; //.getValue(propertyName);
  21.                 }
  22.                 else
  23.                 {
  24.                     result = GetPropertyValueFormObject(obj, propertyName);
  25.                 }
  26.             }
  27.             catch (Exception)
  28.             {
  29.                 // 找不到此属性
  30.             }

  31.             return result;
  32.         }
复制代码




作者: sanshi    时间: 2016-5-28 12:21
多谢,会加入开源版下个版本中(v4.2.4)
作者: iceyellow    时间: 2016-7-21 08:28
请问什么是dynamic对象?
作者: 飞↑草    时间: 2016-8-18 15:32
腻害
作者: 下架学长    时间: 2016-9-2 17:17
sanshi 发表于 2016-5-28 12:21
多谢,会加入开源版下个版本中(v4.2.4)

能不能解释一下什么是dynamic   新手




欢迎光临 FineUI 官方论坛 (https://fineui.com/BBS/) Powered by Discuz! X3.4