as 的妙用

个人理解:as跟is

is 相当于判断里的“==” 是与否

if(e.OriginalSource is Button)

as 一般用来转换另一种object

e.OriginalSource as Button

来获取相关属性或值

e.OriginalSource as RadioButton).Name.ToUpper()

as和is的出现 一般是在路由事件中,需要通过这两个关键字来互交动态生成的不同类型或属性不同的UI控件

比如通过for生成按钮

for(int i =  0;i<10;i++)
{
    Button btn = New Button();
    btn.Name = i.ToString();  stackPanel1.Children.Add(btn);}
for(int i =  0;i<10;i++)
{
  RadioButton btn = New RadioButton();  btn.Name = i.ToString();  stackPanel1.Children.Add(btn);}

路由监听

 this.stackPanel.AddHandler(Button.ClickEvent, new RoutedEventHandler(Btn_Click));

事件处理

private void Btn_Click(object obj, RoutedEventArgs e)
{
    object Obj = e.OriginalSource;  if(Obj is Button)  {    MessageBox.Show((Obj as Button).Name.ToString());  }  if(Obj is RadioButton)  {    MessageBox.Show((Obj as RadioButton).Name.ToString());  }}

比较复杂的转换,需要一层一层进入

TabControl切换需求((sender as TabControl).SelectedItem as TabItem).Header.ToString();DataGrid数据操作需求((sender as DataGrid).SelectedItem as DataRowView).Row["c_id"].ToString();

as 的妙用,布布扣,bubuko.com

时间: 2024-10-10 16:21:25

as 的妙用的相关文章

《众妙之门——精通CSS3》一书知识点剖析

不得不佩服京东的速度,昨天刚下单的两本书今天上午就到了.其中一本是全彩页的<众妙之门 - 精通CSS3>,细看了前几十页,书上的叙述方式给我的印象其实不如“彩页”来的讨喜——接连说上几个例子,扔个例子的链接(没源码下载,要自己手动输入,而且近乎所有的例子页面均已失效),未经细剖便草草了事,感觉倒是适合作为厕所读物(汗).... 虽然书中不细剖,却也不能白花银子,不妨自己实打实地查资料.记笔记,不辜负了早上送出的老毛. P21 此处提到的例子动用了 -webkit-background-clip

System center 2012 R2 实战十、妙用SCO+SCOM实现声音告警

SCOM默认支持邮件告警,即时消息告警,短信告警,那么如果要实现声音告警,应该如何实现呢?大家可以好好思考一下,需求就是SCOM产生警报,同时触发声音告警+短信告警+邮件报警. 当时第一个想到的是Live Maps,Live Maps是一个单独的收费产品,通过Live Maps可以很好地与SCOM进行集成,还可以实现移动终端的声音告警,也可以做一套流程,比如说满足什么样子的条件,那些指定的服务器,去触发Sound声音插件,还可以实现地图展示,Live Maps有很多诱人的功能 产品地址如下 ht

90%的卖家不知道,eBay销量爆涨有妙招!

说到提升销量,可能大部分卖家脑海里闪现的都是跟卖.优化.推广--,其实方法远远不止这些,今天小编讲讲不为人熟知的几种eBay销量爆涨妙招,希望对卖家们有所帮助. 1.UPC要好好利用 在eBay上,相同产品码的listing,是可以和Reviews共享客户的,而我们商家恰好可以利用这一点,借此找到那些Reviews数量多.质量好的listing,而如果它有产品码,而商家与该产品是同款,那我们也可以将产品码利用起来. UPC码正规渠道购买价格较高,如果是eBay用,商家可以去万能的某宝上购买,价格

转---深入浅出妙用 Javascript 中 apply、call、bind

作者:伯乐在线专栏作者 - chokcoco 如有好文章投稿,请点击 → 这里了解详情 如需转载,发送「转载」二字查看说明 这篇文章实在是很难下笔,因为网上相关文章不胜枚举. 巧合的是前些天看到阮老师的一篇文章的一句话: "对我来说,博客首先是一种知识管理工具,其次才是传播工具.我的技术文章,主要用来整理我还不懂的知识.我只写那些我还没有完全掌握的东西,那些我精通的东西,往往没有动力写.炫耀从来不是我的动机,好奇才是." 对于这句话,不能赞同更多,也让我下决心好好写这篇,网上文章虽多,

C++运算符重载的妙用

运算符重载(Operator overloading)是C++重要特性之中的一个,本文通过列举标准库中的运算符重载实例,展示运算符重载在C++里的妙用.详细包含重载operator<<,operator>>支持cin,cout输入输出.重载operator[],实现下标运算.重载operator+=实现元素追加:重载operator()实现函数调用.假设你对C++的运算符重载掌握的游刃有余.那就无需继续往下看了. 运算符重载带来的优点就是--让代码变得简洁.以下将展示几个标准库因使

深入浅出 妙用Javascript中apply、call、bind

apply.call.bind的认识,并且列出一些它们的妙用加深记忆. apply.call 在 javascript 中,call 和 apply 都是为了改变某个函数运行时的上下文(context)而存在的,换句话说,就是为了改变函数体内部 this 的指向. JavaScript 的一大特点是,函数存在「定义时上下文」和「运行时上下文」以及「上下文是可以改变的」这样的概念. 先来一个栗子: 1 2 3 4 5 6 7 8 9 10 11 function fruits() {} fruit

转载 【CSS进阶】伪元素的妙用--单标签之美

1.单个颜色实现按钮 hover .active 的明暗变化 请点击 转载利用伪元素单个颜色实现 hover 和 active 时的明暗变化效果 2.利用after伪类清除浮动 .clearfix:after {content:"."; display:block; height:0; visibility:hidden; clear:both; } .clearfix { *zoom:1; } 3.增强用户体验,使用伪元素实现增大点击热区.适合用在点击区域较小的移动端,PC端看上去是

条件编译#ifdef的妙用详解_透彻

这几个宏是为了进行条件编译.一般情况下,源程序中所有的行都参加编译.但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部 分内容指定编译的条件,这就是“条件编译”.有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句.     条件编译命令最常见的形式为:     #ifdef 标识符     程序段1     #else     程序段2     #endif          它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序

妙哉,十八岁!

18,一个属于青春的数字,一个人生的新起点. 依稀记得2013年的夏天,你们刚踏入二中的样子,你们的朝气和活力让百十年的二中充满勃勃生机.作为校长,非常有幸见证了你们的青春,也非常高兴分享了你们的活力.你们用诗歌向青春举杯,你们用话剧向艺术致敬,你们在运动跑道上刷新纪录,你们在学科竞赛场上创造新的辉煌……这一切都让我看到2016届的你们身上已真正熔铸了二中人的精神与气质.滴水涌泉,赤子钟鸣,每一次的相逢总见二中人内心的澎湃:六和塔影,钱塘潮涌,一次次的回眸更增二中人壮阔的心志. 十八而至,责任以