GridControl应用点滴之Combobox
来源:互联网 发布:电脑版解压软件 编辑:程序博客网 时间:2024/06/13 22:20
应用过程中有需要使得单元格具备Combobox的风格。
下面就应用方式,分两种状况说明:XAML代码和程序代码
XAML代码:
<dxg:GridColumn.CellTemplate> <DataTemplate> <dxe:ComboBoxEdit x:Name="PART_Editor" DisplayMember="Name" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=Window, AncestorLevel=1}, Path=DataContext.Jobs}" ValueMember="Job" /> </DataTemplate> </dxg:GridColumn.CellTemplate>
注意:1、在使用其他编辑器时,一定要设置Name为PART_Editor;
2、如果ItemSource要使用数据行对象自身,则一定要在属性名称前加上Data,如下
<dxe:ComboBoxEdit Name="PART_Editor" ItemsSource="{Binding Data.YourProperty}"/>
除了CellTemplate,也可以设置EditTemplate和DisplayTemplate。EditTemplate,顾名思义,就是进入编辑状态下的表现形式。其使用方式类似CellTemplate,只不过内部采用ControlTemplate。DisplateTemplate专为显示效果使用,方式同CellTemplate。这里不再重复说明。<dxg:GridColumn.EditSettings > <dxe:ComboBoxEditSettings ItemsSource="{Binding DataProp}"> </dxe:ComboBoxEditSettings> </dxg:GridColumn.EditSettings>EditSettings效果同EditTemplate,在编辑时显现。但是与Template相比,EditSettings无法识别数据行对象,这意味着只能通过CellTemplate或EditTemplate解决。
当EditSettings和CellTemplate同时设置时,以CellTemplate为准。
程序代码:
代码创建DataTemplate
private void CreateComboBoxCellEditingTemplate(GridColumn column, string bindingField) { if (column == null || bindingField == null) { return; } DataTemplate dtDataTemplate = new DataTemplate(); FrameworkElementFactory factory = new FrameworkElementFactory(typeof(ComboBoxEdit)); factory.Name = "PART_Editor"; factory.SetValue(FrameworkElement.NameProperty, "PART_Editor"); factory.SetBinding(ComboBoxEdit.ItemsSourceProperty, new Binding("Data.YourProperty")); dtDataTemplate.VisualTree = factory; column.CellTemplate = dtDataTemplate; }注意事项:
1、必须通过FrameworkElementFactory创建界面元素;
2、必须指定名称"PART_Editor"
3、通过VisualTree设置界面元素
代码创建EditSettings
private void CreateComboBoxCellEditingTemplate(GridColumn column, string bindingField) { if (column == null || bindingField == null) { return; } ComboBoxEditSettings ces = new ComboBoxEditSettings(); ces.SetBinding(ComboBox.ItemsSourceProperty, new Binding("DataProp")); ces.SetValue(ComboBox.StaysOpenOnEditProperty, true); ces.SetValue(ComboBox.WidthProperty, column.Width - 10); column.EditSettings = ces; }这个通用有个适用场景问题,若DataProp来源于数据行对象本身,则无法使用。
阅读全文
0 0
- GridControl应用点滴之Combobox
- GridControl应用点滴之数据绑定
- GridControl应用点滴之ReadOnly Vs AllowEdit
- GridControl应用点滴之控制单元格读写
- GridControl应用点滴之选中数据行事件
- GridControl 点滴(一)
- gridcontrol控件了点滴(二)
- DevExpress ,XtraGrid,GridControl,Gridview 使用点滴
- DevExpress ,XtraGrid,GridControl,Gridview 使用点滴
- DevExpress控件之gridControl
- 【Devexpress】GridControl之CardView
- Dev 控件之GridControl
- Devexpress 之gridControl
- Dev之GridControl详解
- winform程序之comboBox控件应用四则运算(简单)
- ExtJs技术应用之PropertyGrid使用ComboBox选择值
- Ext Combobox的应用
- Combobox控件的应用
- Mat 构造方法实例
- 第4章 面向切面的Spring--xml配置切面 笔记2
- java 基础知识
- xjb——洛谷 P1439 排列LCS问题
- 移动端布局终极解决方案hotcss
- GridControl应用点滴之Combobox
- 日记 eclipse 不能进入断点
- Redis
- 数据库:行存储、列存储
- 怎样防止重复发送 Ajax 请求?
- Scala 学习之Map(映射)讲解
- Intellij IDEA中的撤销和回复撤销快捷键
- java 面向对象
- 那些创业的艰辛整理