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 ...
随机推荐
- $POST 、$HTTP_RAW_POST_DATA、php://input三者之间的区别
$POST .$HTTP_RAW_POST_DATA.php://input三者之间的区别 访问原始 POST 数据的更好方法是 php://input或者$HTTP_RAW_POST_DATA.$H ...
- ubuntu命令大全
一.文件/文件夹管理 ls 列出当前目录文件(不包括隐含文件) ls -a 列出当前目录文件(包括隐含文件) ls -l 列出当前目录下文件的详细信息 cd .. 回当前目录的上一级目录 cd - 回 ...
- 用datagrid实现完整的一个页面
打怪升级真的好难,记录一点一滴,一滴一点,先上效果图. 1.想完成一个界面,先得有界面.界面是在WebRoot下的根目录文件中新建的zjqktj.jsp中建立的,再通过java在后台调用数据库取出数据 ...
- Google高级搜索语法
Google高级搜索语法 Google搜索果真是一个强悍的不得了的搜索引擎,今天转了一些 google的高级搜索语法 希望能帮助到大家. 一.allinanchor: anchor是一处说明性的文 ...
- 伟大的GCD和NSOperationQueue
一. GCD GCD中最重要的两个东西 任务 和 队列 任务就是一段代码(用来缓存,下载,计算等操作) 队列从大的方面分为两个队列:主队列(串行队列)和 自己创建的队列(串行,和并行) 主队列中: 在 ...
- 配置nginx负载均衡
配置nginx负载均衡 执行命令:vi /usr/local/nginx/sbin/nginx/conf/nginx.conf 修改为: worker_processes 2; events { ...
- I2C VHDL程序
http://blog.sina.com.cn/s/blog_9bd80b7601012o9y.html library ieee ; use ieee.std_logic_1164.all ; us ...
- 如何删除选中的checkbox
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 介绍一些chrome 好用的插件和快捷键
1.AdBlock ★★★ 最受欢迎的Google 浏览器扩充功能,拥有超过8 百万位使用者!阻挡网路上所有的广告. 2.印象笔记 -剪裁 无需多说! 3.豆藤 Bean vine ★★★★ 豆瓣有此 ...
- int 和 string 相互转换(简洁版)
string int2str(int x) { return x ? num2str(x/10)+string(1,x%10+'0') : "";} int str2int(str ...