XAML:

  1. <syncfusion:GridTemplateColumn.EditTemplate>
  2. <DataTemplate DataType="viewModel:CustomerViewModel" >
  3. <syncfusion:ComboBoxAdv ItemsSource="{x:Static viewModel:RecordStatusModel.RecordStatusItem}" DropDownOpened="ComboBoxAdvStatus_DropDownOpened" DropDownClosed="ComboBoxAdvStatus_DropDownClosed"
  4. AllowMultiSelect="True">

  5. </syncfusion:ComboBoxAdv>
  6. </DataTemplate>
  7. </syncfusion:GridTemplateColumn.EditTemplate>

1。绑定数据源。一个静态的List<string>即可。

2.关键的两个事件:DropDownOpened和DropDownClosed。 即打开和关闭。在复选框打开的时候初始化,关闭的时候处理用户的选择。

  1. /// <summary>
  2. /// 报警级别复选框
  3. /// </summary>
  4. /// <param name="sender"></param>
  5. /// <param name="e"></param>
  6. private void ComboBoxAdvStatus_DropDownOpened(object sender, EventArgs e)
  7. {
  8. var cbatmp = (ComboBoxAdv)sender;
  9. var alarmtypeselect = new ObservableCollection<object>();
  10. var targetuser = CustomersDatagrid.SelectedItem as CustomerViewModel;
  11. if (targetuser != null)
  12. {
  13. var liststr = RecordStatusModel.AlarmStatusToStrList(targetuser.RecordTypeFlags);
  14. foreach (var str in liststr)
  15. {
  16. alarmtypeselect.Add(str);
  17. }
  18. cbatmp.SelectedItems = alarmtypeselect;
  19. }
  20. }
  21.  
  22. /// <summary>
  23. /// 报警类型复选框
  24. /// </summary>
  25. /// <param name="sender"></param>
  26. /// <param name="e"></param>
  27. private void ComboBoxAdvStatus_DropDownClosed(object sender, EventArgs e)
  28. {
  29. ComboBoxAdv cbatmp = (ComboBoxAdv)sender;
  30. var tmp = cbatmp.SelectedItems.ToList<string>();
  31. var targetuser = CustomersDatagrid.SelectedItem as CustomerViewModel;
  32. var flag = RecordStatusModel.AlarmStrListToEnum(tmp);
  33. if (targetuser != null) targetuser.RecordTypeFlags = flag;
  34. alarmHandleViewModel.Save();
  35. }
  1. RecordStatusModel
  1. static class RecordStatusModel
  2. {
  3. private static List<string> _recordStatusItem;
  4. private static Dictionary<AlarmStatusFlags, string> _alarmStatusDictionary;
  5.  
  6. public static List<string> RecordStatusItem
  7. {
  8. get { return _recordStatusItem??(_recordStatusItem=new List<string>()
  9. {
  10. "报警",
  11. "应答",
  12. "恢复",
  13. "移除",
  14. }); }
  15. }
  16.  
  17. public static Dictionary<AlarmStatusFlags, string> AlarmStatusDictionary
  18. {
  19. get
  20. {
  21. return _alarmStatusDictionary ?? (_alarmStatusDictionary = new Dictionary<AlarmStatusFlags, string>()
  22. {
  23. {AlarmStatusFlags.Alarm, "报警"},
  24. {AlarmStatusFlags.Acked, "应答"},
  25. {AlarmStatusFlags.Recover, "恢复"},
  26. {AlarmStatusFlags.Remove, "移除"},
  27. });
  28. }
  29. }
  30.  
  31. public static List<string> AlarmStatusToStrList(AlarmStatusFlags flags)
  32. {
  33. return (from dic in AlarmStatusDictionary where (int)(dic.Key & flags) > select dic.Value).ToList();
  34. }
  35.  
  36. public static AlarmStatusFlags AlarmStrListToEnum(IEnumerable<string> list)
  37. {
  38. return (from str in list from dic in AlarmStatusDictionary where dic.Value == str select dic)
  39. .Aggregate<KeyValuePair<AlarmStatusFlags, string>, AlarmStatusFlags>(, (current, dic) => current | dic.Key);
  40. }
  41. }

Syncfusion 复选框 ComboBoxAdv的更多相关文章

  1. 对jquery操作复选框

    摘要:jquery操作复选框.使用更简洁易懂,思路清晰,逻辑更明了,很实用 <!DOCTYPE html> <html> <head> <meta chars ...

  2. MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件

    类似于多层级的角色与权限控制功能,用MVC实现MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件.最近我们的项目中需要用到树型菜单,以前使用WebForm时,树型菜单有微软提供的 ...

  3. jquery复选框 选中事件 及其判断是否被选中

    jquery复选框 选中事件 及其判断是否被选中 (2014-07-25 14:03:54) 转载▼ 标签: jquery复选框选中事件 分类: extjs jquery   今天做了 显示和不显示密 ...

  4. 复选框css

    input, select, button, textarea{ -webkit-appearance:none; }该属性会导致复选框失去选择效果

  5. 案例1.通过Jquery来处理复选框

    实现以下功能: 1:选中第一个复选框,那么下面所有的复选框都选中,去除选中第一个复选框,下面的都不选中 2:当点击全选按钮,上面足球.篮球.游泳.唱歌 全部选中 3:当点击全不选按钮,上面四个全部取消 ...

  6. 【Telerik】实现列表单元格中添加复选框,进行状态(是、否)判断

    前台界面: 需求:实现对每条细则是否必备进行判断,必备就勾选,否则不勾选. 首先:要保证列表GridView是可编辑的(IsReadOnly=false) 表格代码 其次:单元格的数据绑定要保证是双向 ...

  7. 如何在select下拉列表中添加复选框?

    近来在给一个公司做考试系统的项目,遇到的问题不少,但其中的几个让我对表单的使用颇为感兴趣,前端程序员都知道,下拉列表有select标签,复选框有checkbox,但是两者合在一起却少有人去研究,当时接 ...

  8. jquery点击复选框触发事件给input赋值

    体验效果:http://keleyi.com/keleyi/phtml/jqtexiao/31.htm 代码如下: <!DOCTYPE html> <html xmlns=" ...

  9. js控制复选框checkbox 只能单选

    我们在页面经常会用到单选框,来提供单值选在字段,但是有一个问题就是:一旦选择了就不能去除(即--只要选择了就不能再以空值提交了). 所以为了解决这个问题,用复选框限制单选是一个不错的选择 <sc ...

随机推荐

  1. Thrift 2中get用法的详细解析

    Thrift2相比于Thrift 1改动较大,这里不去描述改动的地方,但是它的改动确实比Thrift1方便了很多.但是不能理解的是Thrift2网上的资料和文档相当的少,就以Thrift2操作Hbas ...

  2. doT.js源码解读

    doT.js非常的简洁.全部代码也就200行不到.它的基本思路就是通过强大的正则表达式,把模块转变成可执行的函数,动态生成html字符串.核心new Function(c.varname, str); ...

  3. Web程序的运行原理及流程(一)

    自己做Web程序的开发也有两年多了 从最开始跟风学框架  到第一用上框架的欣喜若狂 我相信每个程序员都是这样过来的 在大学学习一门语言 学会后往往很想做一个实际的项目出来  我当时第一次做WEB项目看 ...

  4. tomcat集群实例重复执行

    http://www.cnblogs.com/interdrp/p/3458882.html

  5. 无域环境下,VCENTER5.5 更改IP后 无法登陆异常修复

    转自http://bbs.vmsky.com/forum.php?mod=viewthread&tid=45593&highlight=vcenter%2Bip 由于没有域环境,SSO ...

  6. SQL Server 2008通过LinkServer操作ORACLE

    时光荏苒~~ 最近项目有需求需要通过SQL Server2008中的数据自动更新到ORACLE中,其实,一开始肯定会想到触发器,因为可以保证实时性. 方案一: 首先,我很确定的一件事情就是MSSQL中 ...

  7. Linux SVN 命令详解(zz)

    Linux下常用SVN命令 2012-04-02 11:46:00 标签:服务器 目录 Linux checkout linux系统 1.将文件checkout到本地目录 svn checkout p ...

  8. C# 基础(8)--网络编程

    套接字,客户端连接服务器,作为进程通讯机制,是基于描述IP地址和端口,是一个通讯链的句柄,其实质就是两个程序通讯用的. 非常类似于电话插座.双方通话的过程,是一方向电话机发出信号和对方从电话机接受信号 ...

  9. 2016某知名互联网公司PHP面试题及答案

    1 字符串"\r","\n","\t","\x20"分别代表什么 答案: "\r"代表的含义是: 在 ...

  10. 4580: [Usaco2016 Open]248

    Description Bessie likes downloading games to play on her cell phone, even though she does find the ...