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 ...
随机推荐
- EF支持mysq相关配置数码
最近,项目考虑到安装部署方面:希望可以使用MySQL数据库,毕竟比较小巧.方便. 后来,自己通过测试发现EF可以支持mysql数据库,而且也可以通过codefirst模式进行开发:使用起来,跟sqls ...
- 关于C#怎么固定窗口大小属性详解
原文地址:http://zhidao.baidu.com/link?url=aDqlJMuABC8IxXz5drmZcPIHHlTKX2mrfIpyRZNFp0IAB6RSxT24B2XXMRCK1e ...
- jsp:软件包 javax.servlet 不存在
jdk里面有javax.servlet和javax.servlet.http这两个包吗? JavaServlet程序运行还需要安装JDK以外的包吗...? why?我运行JavaServlet程序的时 ...
- text-align:justify的使用
在平常的开发过程中,对于text-align一般用到的是left,center,right,这三个属性都不会陌生.然而,对于justify的使用我却是很陌生.首先有个比较简单的例子. 首先是html代 ...
- liunx 多个tomcat 产生的新问题
今天在给 tomcat 版本7.0.57升级到7.0.72的时候,碰到一个奇怪的问题,启动 tomcat7.0.72 的时候报错,找不到tomcat7.0.57/bin/setclasspath.sh ...
- XAF ObjectSpace保存时添加记录
点击保存按钮时自动添加相关记录(用于界面查看),另外还有Audit控件可使用,此处只是一个简单的功能. 新建一个VC并关联到相关的View,代码如下: public partial class Gon ...
- Head First 设计模式读书笔记
在网上学习了一段时间设计模式,总感觉不系统,很容易忘,最近买书,学习了<Head First设计模式>,受益匪浅,特做此记录,以便激励自己不断的向后学习. 原书JAVA版本,本次学习记录及 ...
- matlab资源
百度网盘 链接:http://pan.baidu.com/s/1c06ikEW 密码:9dpt包含matlab6.5,7,7.01,7.04,7.1,Matlab2006b(7.3),Matlab ...
- hdu acm 1028 数字拆分Ignatius and the Princess III
Ignatius and the Princess III Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- 特征哈希(Feature Hashing)
[本文链接:http://www.cnblogs.com/breezedeus/p/4114686.html,转载请注明出处] 我的博客主营地迁至github,欢迎朋友们有空去看看:http://br ...