有个需要,在ComboBoxEdit中选择多个值,并且要求可以直接在后面添加新的值。

开始的时候绑定列表,设置DisplayMember,不能修改。

然后绑定List<string>,不设置DisplayMember,可以修改,但如果再次显示下拉框的时候,上面的值显示为:System.Collections.Generic.List`1[System.Object]

后发现当有修改选择后的值时,显示下拉框不会变,于是计划在收起popup时,在其值的后面加上一个    ";"   ,刚好可以用于分隔新增加的。

XAML:

                        <dxlc:LayoutItem Label="实验方法:" Height="30">
<dxe:ComboBoxEdit x:Name="checkedComboBox"
NullText="选择试验方法,添加新方法以 ; 分开"
IsTextEditable="True"
ItemsSource="{Binding Testmethod}"
EditValue="{Binding SelectedTestmethod}"
PopupClosed="checkedComboBox_PopupClosed"
ShowCustomItems="True">
<dxe:ComboBoxEdit.StyleSettings>
<dxe:CheckedComboBoxStyleSettings />
</dxe:ComboBoxEdit.StyleSettings>
</dxe:ComboBoxEdit>
</dxlc:LayoutItem>

XAML.cs

        public static List<string> ConvertToDesiredType(object list)
{
List<string> returnList = new List<string>();
var type = list.GetType();
foreach (var item in (IEnumerable<dynamic>)list)
{
returnList.Add(item.ToString());
}
return returnList;
} private void checkedComboBox_PopupClosed(object sender, DevExpress.Xpf.Editors.ClosePopupEventArgs e)
{
if (e.EditValue == null)
return;
var type = e.EditValue.GetType();
if (type.Name.ToString().ToLower() == "string")
{
return;
}
var li = ConvertToDesiredType(e.EditValue);
string edit = string.Empty;
if (li != null)
{
for (int i = 0; i < li.Count; i++)
{
edit += li[i] + ";";
}
}
checkedComboBox.EditValue = edit;
}

上面的ConvertToDesiredType方法,出自于:https://www.csdn.net/tags/MtjaggxsNzA0MTktYmxvZwO0O0OO0O0O.html

效果:

缺点:下拉框出现后,不能勾选已选择的项目,如果此时点  OK  ,上面的值会清空。

WPF dxe:ComboBoxEdit 选择项后并可编辑值的更多相关文章

  1. wpf ListBox删除选择项(支持多项)

    搞了个ListBox删除选择项,开始老是不能把选择项删除干净,剩下几个.后来调试一下原来是ListBox在删除一个选择项之后立即更新,选择项也有变化.结果我想了个这样的方法来删除呵呵. Departm ...

  2. WPF中使用后台代码来控制TreeView的选择项(SelectedItem)以及展开节点操作

    首先为TreeView控件制作一个Style: <Style x:Key="LibraryTreeViewItemStyle" TargetType="{x:Typ ...

  3. WPF ItemControl的源与选择项问题

    具体场景: datagrid的行中有个combox 每个行是一个实例A 每个行中的SelectedItem是实例A的一个属性B 我希望实现datagrid的复制Command,具体做法是A序列化反序列 ...

  4. jquery选中将select下拉框中一项后赋值给text文本框

    jquery选中将select下拉框中一项后赋值给text文本框,出现无法将第一个下拉框的value赋值给文本框 因为select默认选中第一项..在选择第一项时,便导致无法激发onchange事件. ...

  5. Chosen中选择项的更新

    Chosen 选择项的动态修改/更新 如果你需要去动态更新select选择框里的选择项,你需要通知Chosen去响应这个变动,你需要在这个选项框是触发一个"liszt:updated&quo ...

  6. CentOS6.9-zabbix3.2启动失败原因及页面没有mysql选择项

     环境内核信息: [root@zabbix- ~]# uname -a Linux lodboyedu- -.el6.x86_64 # SMP Tue Mar :: UTC x86_64 x86_64 ...

  7. springMVC 复选框带有选择项记忆功能的处理

    前言:由于jsp管理页面经常会遇到复选框提交到JAVA后台,后台处理逻辑完成后又返回到jsp页面,此时需要记住jsp页面提交时复选框的选择状态,故编写此功能! 一.复选框的初始化 1.1.jsp页面 ...

  8. bootstrap-datepicker 与bootstrapValidator同时使用时,选择日期后,无法正常触发校验

    bootstrap-datepicker 与bootstrapValidator同时使用时,选择日期后,无法正常触发校验 (解决办法) http://blog.csdn.net/biedazhangs ...

  9. 解决QML开发中ComboBox中一个已选择项没有清除的问题

    解决QML开发中ComboBox中一个已选择项没有清除的问题 近期使用QML开发一个项目.须要使用ComboBox进行显示.当进行一个操作时,须要向ComboBox加入一个元素,当进行另外一个操作时. ...

  10. 如何在 WPF 中获取所有已经显式赋过值的依赖项属性

    原文:如何在 WPF 中获取所有已经显式赋过值的依赖项属性 获取 WPF 的依赖项属性的值时,会依照优先级去各个级别获取.这样,无论你什么时候去获取依赖项属性,都至少是有一个有效值的.有什么方法可以获 ...

随机推荐

  1. 城市间最短路径问题——R和Rcpp实现

    这里的最短路径问题也叫做相识问题,具体问题来自 https://www.math.pku.edu.cn/teachers/lidf/docs/Rbook/html/_Rbook/examples.ht ...

  2. 超2T硬盘使用gpt分区及做成lvm

    1.超过2T分区不能用fdisk了,用parted 分区格式化后对新的分区做lvm

  3. git diff如何确定差异所在函数context

    问题 在使用git diff 展示c/c++文件修改内容时,除了显示修改上下文外,输出还贴心的展示了修改所在的函数.尽管这个展示并不总是准确,但是能够做到大部分情况下准确也已经相当不错:是不是git内 ...

  4. C++ primer笔记 -变量和基本类型

    由于头文件会被包含在多个源文件中,所以不应该含有变量或者函数的定义.但又三个列外: 1.头文件可以定义类 2.值在编译时就已经知道的const对象(const对象默认为定义它的文件的局部变量,即在.c ...

  5. CF1033E 题解

    题意 传送门 交互题,给定一个简单连通图,你可以询问一个点集 \(s\),返回其导出子图的边数.判断此图是否为二分图:若是,输出其中一部点的集合:否则输出任一个奇环.最多询问 \(20000\) 次. ...

  6. SHR之员工合同解除

    员工合同解除HRContractInfoFacadeControllerBean 这块的意思的源码可以自行翻阅该源码. 调用员工的实现这个合同自动解除 String sql="select ...

  7. 哈希表相关题目-python

    栈&队列&哈希表&堆-python  https://blog.csdn.net/qq_19446965/article/details/102982047 1.O(1)时间插 ...

  8. visual studio 2015 IOS开发连接mac时提示错误couldn't connect to xxxx, please try again的一个方法

    本人使用虚拟机MAC.原本使用虚拟机中的VS2015连接正常没有问题. 但是当把MAC的虚拟机文件COPY到另一个机器上,提示"couldn't connect to xxxx,  plea ...

  9. 处理code中代码格式化与eslint冲突

    在结尾去掉分号 让字符串格式化之后用单引号表示 去掉格式化后自动给末尾加的逗号 在根目录下新建一个文件prettierrc 输入如下 函数名与()之间取消空格 打开eslintrc.js 输入如下代码 ...

  10. yum install的时候提示:Loaded plugins: fastestmirror

    fastestmirror是yum的一个加速插件,这里是插件提示信息是插件不能用了. 不能用就先别用呗,禁用掉,先yum了再说. 1.修改插件的配置文件 # vi  /etc/yum/pluginco ...