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();

转载于:https://www.cnblogs.com/Events/p/3848739.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值