• DevExpress 如何获取Repository Item的值


    DevExpress学习笔记

    如何获取Repository Item的值

        上一章我们看到了如何在TreeList的单元格中动态绑定不同的控件,此类控件被称为In_Place Control。所谓“In_Place”,我的理解为“内置”控件,既然有“内”就相对的会有“外”,其实内和外最简单的理解就是“内置”控件是绑定到如GridControl,TreeList等控件单元格上的控件,“外置”控件是直接拖到Form上的控件。

        如果单单只是放置的位置不同,其它没有任何区别的话,就不会有这一章节了。以ComboBoxEdit为例,要获取这个DropDownList控件的值,“外置”的方式相当方便,如下所示:

    ComboBoxEdit combo1 = new ComboBoxEdit();

    String val1 = Convert.ToString(combo1.EditValue);

        这么简单的两行代码就可以获取到相关控件的值了,但是要想把这代码应用到“内置”的控件上,就费了力气了,请看下面.

    我先在TreeList的Designer中新增一个Repository Item,类型为ComboBoxEdit,

    。将这个“内置”控件绑定至TreeList的某个单元格中,并响应其SelectedValueChanged的事件,发现居然找不到repositoryItemComboBoxLogic的EditValue属性,如下图所示:

     

        噢,找不到这个值的属性如何能够获取到Repository Item的值啊?

        到DevExpress的官网上搜索了一下,发现这样一个信息。原来,Repository Item不论绑定的什么控件,在确定其修改值之前(回车或者转移焦点),“内置”控件的值是不会被绑定的单元格感知到的,因此无法直接通过EditValue这个属性获取到ComboBoxEdit控件选择的值(实际上也根本没有这个属性)。如果想获取到选择的值,首先必须通过“内置”控件的“容器”控件(本处为TreeList)的ActiveEditor方法获取其Active的Editor,在这个例子中就是ComboEdit,后面就是顺利成章的事情了。

    代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    private void repositoryItemComboBoxLogic_SelectedValueChanged(object sender, EventArgs e)
     
    {
     
        BaseEdit logicEdit = treeList1.ActiveEditor;
     
        MessageBox.Show(Convert.ToString(logicEdit.EditValue));
     
    }

    运行效果截图如下:

     

     

    原文在此

    版权声明:本博原创文章可以被转载,但是在未经本人许可前,不得用于任何商业用途或其他以盈利为目的的用途。如需转载,请在转载时声明作者、保留出处。本人保留对本文的一切权利。 作者:AllenRobin Blog:http://gisrsman.cnblogs.com
  • 相关阅读:
    11 并发编程-(线程)-信号量&Event&定时器
    10 并发编程-(线程)-GIL全局解释器锁&死锁与递归锁
    星级评定
    maven课程 项目管理利器-maven 3-5 maven生命周期和插件 4星
    maven课程 项目管理利器-maven 3-4 eclipse安装maven插件和新建maven项目
    maven课程 项目管理利器-maven 3-3 maven中的坐标和仓库
    maven课程 项目管理利器-maven 3-2 maven自动建立目录骨架
    maven课程 项目管理利器-maven 3-1 maven常用的构建命令
    maven课程 项目管理利器-maven 2-2第一个maven案例hellomaven
    maven课程 项目管理利器-maven 1-2maven介绍和环境搭建
  • 原文地址:https://www.cnblogs.com/GISRSMAN/p/4518957.html
Copyright © 2020-2023  润新知