为RadComboBox添加SelectionChanging事件
代码非标准,仅供参考。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Controls;
using Telerik.Windows.Controls;
namespace slTest
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
this.combo.SelectionChanging += combo_SelectionChanging;
}
void combo_SelectionChanging(object sender, SelectionChangingEventArgs e)
{
e.Cancel = this.isCancel.IsChecked.Value;
}
}
public class Combo : Telerik.Windows.Controls.RadComboBox
{
public Combo()
{
base.SelectionChanged += Combo_SelectionChanged;
}
private object _orginalItem { get; set; }
void Combo_SelectionChanged(object sender, Telerik.Windows.Controls.SelectionChangedEventArgs e)
{
if (e.AddedItems.Count != 0)
{
if (this._orginalItem == e.AddedItems[0]) return;
if (SelectionChanging != null)
{
var addedItems = new List<Object>();
if (e.AddedItems.Count != 0)
addedItems.AddRange(e.AddedItems.Cast<Object>());
var removedItems = new List<Object>();
if (e.RemovedItems.Count != 0)
removedItems.AddRange(e.RemovedItems.Cast<Object>());
var cancelEventArgs = new SelectionChangingEventArgs(addedItems, removedItems, true);
SelectionChanging(sender, cancelEventArgs);
if (cancelEventArgs.Cancel)//模拟cancel为true
{
var removedItem = e.RemovedItems.Count != 0 ? e.RemovedItems[0] : null;
this._orginalItem = removedItem;
this.SelectedItem = removedItem;
}
}
}
}
public event SelectionChangingEventHandler SelectionChanging;
}
public delegate void SelectionChangingEventHandler(object sender, SelectionChangingEventArgs e);
}
<UserControl x:Class="slTest.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local ="clr-namespace:slTest"
xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Input"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid x:Name="LayoutRoot" Background="White">
<StackPanel Width="300" HorizontalAlignment="Left" Margin="5">
<local:Combo x:Name="combo">
<telerik:RadComboBoxItem>1</telerik:RadComboBoxItem>
<telerik:RadComboBoxItem>2</telerik:RadComboBoxItem>
<telerik:RadComboBoxItem>3</telerik:RadComboBoxItem>
</local:Combo>
<TextBox x:Name="selectedValue"></TextBox>
<CheckBox x:Name="isCancel"></CheckBox>
<Button Click="Button_Click">Button</Button>
</StackPanel>
</Grid>
</UserControl>
为RadComboBox添加SelectionChanging事件的更多相关文章
- js 页面无滚动条添加滚轮事件
当页面无滚动条时,滑动滚轮时window.onscroll事件不会相应,此时应该去添加滚轮事件 var MouseWheelHandler=function(e){ e.preventDefault( ...
- DataGridView 在下拉框添加下来事件
DataGridView中有一种下拉框式的列,给这个列添加下拉事件时需要转化一下才可以绑定下拉事件 /// <summary> /// 服务类型 /// </summary> ...
- asp.net中的ListBox控件添加双击事件
问题:在Aspx页里的ListBox A中添加双击事件,将选中项添加到另一个ListBox B中,双击ListBox B中的选中项,删除当前选中项 页面: <asp:ListBox ID=&qu ...
- Unity3D NGUI 给button按钮添加单间事件
Unity3D中, NGUI 给button按钮添加单间事件的方法很多,在这里只给推荐一种比较常用的方法. 推荐方法:使用UIListener. 1.给button组价添加上UIListener.选择 ...
- Trace-跟踪高消耗的语句需添加哪些事件
通常接手一台数据库服务器后,我们会开启Profiler跟踪来了解SQL Server的繁忙情况.我们首先会想到的是监控CPU或Duration超过某一阈值的语句/过程.那么所创建的Trace添加哪些事 ...
- ABAP QUERY报表添加双击事件
问题:一个query报表程序,客户想要每一条能编辑并打印. 解决:直接给query添加双击事件,调用新report. 1.创建report,用paramater定义要从query结果中传过来的数据. ...
- 设置代码ios 6添加日历事件No calendar has been set.错误
查了好多资料,发明还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧! 在iOS 6做日历事件添加时,来来回回报错,No calendar has been set ...
- C#避免踩坑之如何添加paint事件
看截图: 首先,右击->属性 然后出来这个界面. 接下来,注意看这个界面的上面:鼠标悬停这个闪电符号,看到没,事件!! 那个闪电符号,点它! 然后下拉找到这个: 你要事先在代码里面添加Form1 ...
- Qt 给控件QLineEdit添加clicked事件方法
做Qt开发的会知道QLineEdit是默认没有clicked事件的,但是Qt有很好的一套信号/槽机制,而且Qt是基于C++面向对象的思想来设计的,那么我们就很容易通过自己定义一些类,重写QLineEd ...
随机推荐
- struts(二)——struts框架实现的基本原理
上一篇文章,我们介绍了MVC框架的基本原理,并指出了这个基本框架中存在大量if…else的问题.今天我们来介绍一下struts框架,让struts解决这个问题. 首先,看一下粗略的时序图: Actio ...
- 在centos上部署java WEB环境
题语:偷得浮生半日闲,趁着十一期间,好好的写写随笔来记录自己所学.所践和所得,不足之处,欢迎各位拍砖~~~ 工具:Xftp 5.Xshell 5 一.安装jdk 1. 使用Xftp 5把jdk-8u ...
- 【前端攻略】:玩转图片Base64编码(转)
引言 图片处理在前端工作中可谓占据了很重要的一壁江山.而图片的Base64编码可能相对一些人而言比较陌生,本文不是从纯技术的角度去讨论图片的base64编码.标题略大,不过只是希望通过一些浅显的论述, ...
- Deploy 11.2.0.3 RAC+DG on Windows 2008 R2 Step by Step
环境规划: 节点1: tc1 192.168.56.101 内存:2G 节点2: tc2 192.168.56.102 内存:2G 物理备库:tcdg192.168.56.108内存:1.5G 操作系 ...
- It's only too late if you decide it is. Get busy living, or get busy dying(转)
我们的身边是不是有这样的一群人,他们心肠不坏,容易感伤,但吐槽似乎是常有的事情,看着时下电视电影,说起哪些哪些自己的泪点.一般都是吃货,别人失眠的时候,TA可能在回忆自己刚做了什么梦.我不是要去评论这 ...
- s有一天,教你开始truts2
写在前面 他也是一个java和java web新秀.此前有过接触java web发展 我想一个小项目.要熟悉struts2开发过程 一个有趣的想法源于教研室项目上的一个功能实现–自己主动识别运营商,去 ...
- 如何使用 yum 安装/更新/移除 软件
如何使用 yum 安装/更新/移除 软件 一. 建立仓库(repository)和源 a) 拷贝所以相关rpm包到某个目录 b) 执行createrepo /目录/目录/目录/目录 注意:b)中 ...
- Spring常见问题解决办法汇总
解决The prefix 'context' for element 'context:component-scan' is not bound<beans xmlns="http:/ ...
- C++ 建设者继承
微通道公用号CodingRush 分享编程.算法.机器人leanring.数据挖掘.推荐系统.知识大数据计算框架,欢迎扫码关注. 子类继承了哪些东西? 子类在继承父类的时候,父类的public成员变量 ...
- [Windows Phone] 以多国语言做为开发前提 (1)
原文:[Windows Phone] 以多国语言做为开发前提 (1) ? 前言 在先前 TechDays 2013 的课程 [开发 Windows Phone 商务应用程式就是这麽快] 中,其中一个部 ...