您当前的位置: 首页 > 

君子居易

暂无认证

  • 0浏览

    0关注

    210博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

将Devexpress GridControl SelectedItems转换成目标类型

君子居易 发布时间:2018-07-13 14:04:16 ,浏览量:0

   在Devexpress GridControl 本来想通过FocusedRowHandle的值来获取选中的对象,并且删除,如果对象没有进行重新排序,筛选,那么,通过FocusedRowHandle来解决获取当前对象是没有问题的。

 但是在实际情况中,排序,筛选是一定会发生的,因此,

之前的思路就是通过排序筛选,触发对应事件,对数据源也做对应的排序,筛选,但是这样做比较复杂,需要添加更多的代码。

因此,突然想到,每次选择后,可以获取到SelectedItems,这里面的数据,就是我想要删除的数据。

所以,我思考的方向是怎样把SelectedItems转换成我需要转换的对象。

之前考虑过,直接转换  

OPTION seletedOPTION = this.gridControl.SelectedItems as OPTION;

这样获取的值为null

进一步了解发现,需要用Cast方法进行转换

//
        // 摘要: 
        //     将 System.Collections.IEnumerable 的元素转换为指定的类型。
        //
        // 参数: 
        //   source:
        //     包含要转换的元素的 System.Collections.IEnumerable。
        //
        // 类型参数: 
        //   TResult:
        //     source 中的元素要转换成的类型。
        //
        // 返回结果: 
        //     一个 System.Collections.Generic.IEnumerable,包含已转换为指定类型的源序列的每个元素。
        //
        // 异常: 
        //   System.ArgumentNullException:
        //     source 为 null。
        //
        //   System.InvalidCastException:
        //     序列中的元素不能强制转换为 TResult 类型。
        public static IEnumerable Cast(this IEnumerable source);

System.Collections.IList items = (System.Collections.IList)this.gridControl.SelectedItems;            var collection = items.Cast();//    OPTION就是我需要转成的目标类型            var someModelList = collection.ToList();            OPTION seletedOPTION = someModelList[0] as OPTION;//获取到值,说明转换成功。

关注
打赏
1660814979
查看更多评论
立即登录/注册

微信扫码登录

0.0404s