Syncfusion 复选框 ComboBoxAdv
XAML:
- <syncfusion:GridTemplateColumn.EditTemplate>
- <DataTemplate DataType="viewModel:CustomerViewModel" >
- <syncfusion:ComboBoxAdv ItemsSource="{x:Static viewModel:RecordStatusModel.RecordStatusItem}" DropDownOpened="ComboBoxAdvStatus_DropDownOpened" DropDownClosed="ComboBoxAdvStatus_DropDownClosed"
- AllowMultiSelect="True">
- </syncfusion:ComboBoxAdv>
- </DataTemplate>
- </syncfusion:GridTemplateColumn.EditTemplate>
1。绑定数据源。一个静态的List<string>即可。
2.关键的两个事件:DropDownOpened和DropDownClosed。 即打开和关闭。在复选框打开的时候初始化,关闭的时候处理用户的选择。
- /// <summary>
- /// 报警级别复选框
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ComboBoxAdvStatus_DropDownOpened(object sender, EventArgs e)
- {
- var cbatmp = (ComboBoxAdv)sender;
- var alarmtypeselect = new ObservableCollection<object>();
- var targetuser = CustomersDatagrid.SelectedItem as CustomerViewModel;
- if (targetuser != null)
- {
- var liststr = RecordStatusModel.AlarmStatusToStrList(targetuser.RecordTypeFlags);
- foreach (var str in liststr)
- {
- alarmtypeselect.Add(str);
- }
- cbatmp.SelectedItems = alarmtypeselect;
- }
- }
- /// <summary>
- /// 报警类型复选框
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void ComboBoxAdvStatus_DropDownClosed(object sender, EventArgs e)
- {
- ComboBoxAdv cbatmp = (ComboBoxAdv)sender;
- var tmp = cbatmp.SelectedItems.ToList<string>();
- var targetuser = CustomersDatagrid.SelectedItem as CustomerViewModel;
- var flag = RecordStatusModel.AlarmStrListToEnum(tmp);
- if (targetuser != null) targetuser.RecordTypeFlags = flag;
- alarmHandleViewModel.Save();
- }
- RecordStatusModel:
- static class RecordStatusModel
- {
- private static List<string> _recordStatusItem;
- private static Dictionary<AlarmStatusFlags, string> _alarmStatusDictionary;
- public static List<string> RecordStatusItem
- {
- get { return _recordStatusItem??(_recordStatusItem=new List<string>()
- {
- "报警",
- "应答",
- "恢复",
- "移除",
- }); }
- }
- public static Dictionary<AlarmStatusFlags, string> AlarmStatusDictionary
- {
- get
- {
- return _alarmStatusDictionary ?? (_alarmStatusDictionary = new Dictionary<AlarmStatusFlags, string>()
- {
- {AlarmStatusFlags.Alarm, "报警"},
- {AlarmStatusFlags.Acked, "应答"},
- {AlarmStatusFlags.Recover, "恢复"},
- {AlarmStatusFlags.Remove, "移除"},
- });
- }
- }
- public static List<string> AlarmStatusToStrList(AlarmStatusFlags flags)
- {
- return (from dic in AlarmStatusDictionary where (int)(dic.Key & flags) > select dic.Value).ToList();
- }
- public static AlarmStatusFlags AlarmStrListToEnum(IEnumerable<string> list)
- {
- return (from str in list from dic in AlarmStatusDictionary where dic.Value == str select dic)
- .Aggregate<KeyValuePair<AlarmStatusFlags, string>, AlarmStatusFlags>(, (current, dic) => current | dic.Key);
- }
- }
Syncfusion 复选框 ComboBoxAdv的更多相关文章
- 对jquery操作复选框
摘要:jquery操作复选框.使用更简洁易懂,思路清晰,逻辑更明了,很实用 <!DOCTYPE html> <html> <head> <meta chars ...
- MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件
类似于多层级的角色与权限控制功能,用MVC实现MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件.最近我们的项目中需要用到树型菜单,以前使用WebForm时,树型菜单有微软提供的 ...
- jquery复选框 选中事件 及其判断是否被选中
jquery复选框 选中事件 及其判断是否被选中 (2014-07-25 14:03:54) 转载▼ 标签: jquery复选框选中事件 分类: extjs jquery 今天做了 显示和不显示密 ...
- 复选框css
input, select, button, textarea{ -webkit-appearance:none; }该属性会导致复选框失去选择效果
- 案例1.通过Jquery来处理复选框
实现以下功能: 1:选中第一个复选框,那么下面所有的复选框都选中,去除选中第一个复选框,下面的都不选中 2:当点击全选按钮,上面足球.篮球.游泳.唱歌 全部选中 3:当点击全不选按钮,上面四个全部取消 ...
- 【Telerik】实现列表单元格中添加复选框,进行状态(是、否)判断
前台界面: 需求:实现对每条细则是否必备进行判断,必备就勾选,否则不勾选. 首先:要保证列表GridView是可编辑的(IsReadOnly=false) 表格代码 其次:单元格的数据绑定要保证是双向 ...
- 如何在select下拉列表中添加复选框?
近来在给一个公司做考试系统的项目,遇到的问题不少,但其中的几个让我对表单的使用颇为感兴趣,前端程序员都知道,下拉列表有select标签,复选框有checkbox,但是两者合在一起却少有人去研究,当时接 ...
- jquery点击复选框触发事件给input赋值
体验效果:http://keleyi.com/keleyi/phtml/jqtexiao/31.htm 代码如下: <!DOCTYPE html> <html xmlns=" ...
- js控制复选框checkbox 只能单选
我们在页面经常会用到单选框,来提供单值选在字段,但是有一个问题就是:一旦选择了就不能去除(即--只要选择了就不能再以空值提交了). 所以为了解决这个问题,用复选框限制单选是一个不错的选择 <sc ...
随机推荐
- Thrift 2中get用法的详细解析
Thrift2相比于Thrift 1改动较大,这里不去描述改动的地方,但是它的改动确实比Thrift1方便了很多.但是不能理解的是Thrift2网上的资料和文档相当的少,就以Thrift2操作Hbas ...
- doT.js源码解读
doT.js非常的简洁.全部代码也就200行不到.它的基本思路就是通过强大的正则表达式,把模块转变成可执行的函数,动态生成html字符串.核心new Function(c.varname, str); ...
- Web程序的运行原理及流程(一)
自己做Web程序的开发也有两年多了 从最开始跟风学框架 到第一用上框架的欣喜若狂 我相信每个程序员都是这样过来的 在大学学习一门语言 学会后往往很想做一个实际的项目出来 我当时第一次做WEB项目看 ...
- tomcat集群实例重复执行
http://www.cnblogs.com/interdrp/p/3458882.html
- 无域环境下,VCENTER5.5 更改IP后 无法登陆异常修复
转自http://bbs.vmsky.com/forum.php?mod=viewthread&tid=45593&highlight=vcenter%2Bip 由于没有域环境,SSO ...
- SQL Server 2008通过LinkServer操作ORACLE
时光荏苒~~ 最近项目有需求需要通过SQL Server2008中的数据自动更新到ORACLE中,其实,一开始肯定会想到触发器,因为可以保证实时性. 方案一: 首先,我很确定的一件事情就是MSSQL中 ...
- Linux SVN 命令详解(zz)
Linux下常用SVN命令 2012-04-02 11:46:00 标签:服务器 目录 Linux checkout linux系统 1.将文件checkout到本地目录 svn checkout p ...
- C# 基础(8)--网络编程
套接字,客户端连接服务器,作为进程通讯机制,是基于描述IP地址和端口,是一个通讯链的句柄,其实质就是两个程序通讯用的. 非常类似于电话插座.双方通话的过程,是一方向电话机发出信号和对方从电话机接受信号 ...
- 2016某知名互联网公司PHP面试题及答案
1 字符串"\r","\n","\t","\x20"分别代表什么 答案: "\r"代表的含义是: 在 ...
- 4580: [Usaco2016 Open]248
Description Bessie likes downloading games to play on her cell phone, even though she does find the ...