WPF 附件路由事件
public class Person
{
public static readonly RoutedEvent NameChangedEvent = EventManager.RegisterRoutedEvent("NameChanged", RoutingStrategy.Bubble,typeof(RoutedEventHandler),typeof(Person));
//为界面添加路由侦听
public static void AddNameChangedHandle(DependencyObject d,RoutedEventHandler h)
{
UIElement e = d as UIElement;
if(null!=e)
{
e.AddHandler(NameChangedEvent, h);
}
}
//移除侦听
public static void RemoveNameChangedHandle(DependencyObject d,RoutedEventHandler h)
{
UIElement e = d as UIElement;
if(null!=e)
{
e.RemoveHandler(NameChangedEvent,h);
}
}
public int Id { get; set; }
public string Name { get; set; }
}
<Window x:Class="WpfApplication1.Window27"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window27" Height="272" Width="349">
<Grid x:Name="gd_main">
<Button Content="Button" x:Name="button1" Width="75" Height="75" Margin="10" Click="button1_Click" />
</Grid>
</Window>
public partial class Window27 : Window
{
public Window27()
{
InitializeComponent();
//为外层Grid添加路由事件
Person.AddNameChangedHandle(this.gd_main, new RoutedEventHandler(PersonNameChanged));
}
private void PersonNameChanged(object obj, RoutedEventArgs e)
{
MessageBox.Show((e.OriginalSource as Person).Name);
}
private void button1_Click(object sender, RoutedEventArgs e)
{
Person persion = new Person();
persion.Id = 0;
persion.Name = "Darren";
//准备事件消息并发送路由事件
RoutedEventArgs arg = new RoutedEventArgs(Person.NameChangedEvent, persion);
this.button1.RaiseEvent(arg);
}
}
最新文章
- hihocoder -1121-二分图的判定
- 通过挂载系统光盘搭建本地yum仓库的方法
- OpenCv Mat操作总结
- 三级联动(在YII框架中)
- 【python】类的访问限制
- [BTS]The join order has been enforced because a local join hint is used.;Duplicate key was ignored.";.
- repo andrid
- java String与Byte[]和String 与InputStream转换时注意编码问题。。。
- Ubuntu系统下运行Eclipse出现找不到jre的问题的解决方法
- css style与class之间的区别
- Update与Mysql、Sqlsever中的随机数
- springmvc附件上传核心代码
- Jquey里的同步请求和异步请求
- netty的编解码器理解(转)
- python time模块和datetime模块
- ruby读取exce文件,使用roo---Gem
- Bootstrap如何配合字体自适应
- c++ __declspec
- Android UI系列-----RelativeLayout的相关属性
- MYSQL + MHA +keepalive + VIP安装配置(一)--MYSQL安装配置