1.可传参数

namespace DrugInfo
{
public class ChooseDrugRoutedEventArgs : RoutedEventArgs
{
public ChooseDrugRoutedEventArgs(RoutedEvent routedEvent, object source) : base(routedEvent, source) { } public string Message { get; set; }
} public partial class ChooseDrug
{
//声明和注册路由事件
public static readonly RoutedEvent ChooseDrugRoutedEvent = EventManager.RegisterRoutedEvent("ChooseDrug", RoutingStrategy.Bubble, typeof(ChooseDrugRoutedEventArgs), typeof(ChooseDrug)); //自定义事件委托
public delegate void ChooseDrugRoutedEventHandler(object sender, ChooseDrugRoutedEventArgs e); //CLR事件包装
public event ChooseDrugRoutedEventHandler ChooseDrugClick
{
add { AddHandler(ChooseDrugRoutedEvent, value); }
remove { RemoveHandler(ChooseDrugRoutedEvent, value); }
}
//界面选择数据后确定
private void Choose_OnClick(object sender, RoutedEventArgs routedEventArgs)
{ ChooseDrugRoutedEventArgs args = new ChooseDrugRoutedEventArgs(ChooseDrugRoutedEvent, this);
args.Message = "传数据过去";
this.RaiseEvent(args);//UIElement及其派生类
}
}
} //调用
namespace Purchasing
{
/// <summary>
/// Main.xaml 的交互逻辑
/// </summary>
public partial class Main
{
private void Control_Loaded(object sender, RoutedEventArgs e)
{
var popups = new ChooseDrug();
popups.ChooseDrugClick += Popups_ChooseDrugClick;
} private void Popups_ChooseDrugClick(object sender, ChooseDrugRoutedEventArgs e)
{
RadWindow.Alert(e.Message);
}
}
}

2.无参数,不需要自定义委托

.可传参数

namespace DrugInfo
{
public partial class ChooseDrug
{
//声明和注册路由事件
public static readonly RoutedEvent ChooseDrugRoutedEvent = EventManager.RegisterRoutedEvent("ChooseDrug", RoutingStrategy.Bubble, typeof(EventHandler<RoutedEventHandler>), typeof(ChooseDrug)); //CLR事件包装
public event RoutedEventHandler ChooseDrugClick
{
add { AddHandler(ChooseDrugRoutedEvent, value); }
remove { RemoveHandler(ChooseDrugRoutedEvent, value); }
}
//界面选择数据后确定
private void Choose_OnClick(object sender, RoutedEventArgs routedEventArgs)
{
RaiseEvent(new RoutedEventArgs(ChooseDrugRoutedEvent));
}
}
} //调用
namespace Purchasing
{
/// <summary>
/// Main.xaml 的交互逻辑
/// </summary>
public partial class Main
{
private void Control_Loaded(object sender, RoutedEventArgs e)
{
var popups = new ChooseDrug();
popups.ChooseDrugClick += Popups_ChooseDrugClick;
} private void Popups_ChooseDrugClick(object sender, RoutedEventArgs e)
{
RadWindow.Alert("OK");
}
}
}

WPF 自定义事件的更多相关文章

  1. WPF自定义路由事件(二)

    WPF中的路由事件 as U know,和以前Windows消息事件区别不再多讲,这篇博文中,将首先回顾下WPF内置的路由事件的用法,然后在此基础上自定义一个路由事件. 1.WPF内置路由事件 WPF ...

  2. wpf自定义控件中使用自定义事件

    wpf自定义控件中使用自定义事件 1 创建自定义控件及自定义事件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 2 ...

  3. 细说WPF自定义路由事件

    WPF中的路由事件 as U know,和以前Windows消息事件区别不再多讲,这篇博文中,将首先回顾下WPF内置的路由事件的用法,然后在此基础上自定义一个路由事件. 1.WPF内置路由事件   W ...

  4. 【2016-11-11】【坚持学习】【Day24】【WPF 自定义控件 附加属性 自定义事件】

    UserControl ,自定义控件. 这里刚刚想到一个问题.什么时候应该用usercontrol 定义一个控件.什么时候应该重写控件的template和样式,实现新效果. 引用一下人家的话:http ...

  5. WPF自定义RoutedEvent事件示例代码

    ************************* 引用网友,便于查找所用..... 创建自定义路由事件和应用分为6个步骤: (1)自定义路由事件参数对象 (2)声明并注册路由事件 (3)为路由事件添 ...

  6. WPF 自定义路由事件

    如何:创建自定义路由事件 首先自定义事件支持事件路由,需要使用 RegisterRoutedEvent 方法注册 RoutedEvent C#语法 public static RoutedEvent ...

  7. WPF自定义路由事件(一)

    首先自定义事件支持事件路由,需要使用 RegisterRoutedEvent 方法注册 RoutedEvent C#语法 public static RoutedEvent RegisterRoute ...

  8. WPF 创建自定义控件及自定义事件

    1 创建自定义控件及自定义事件 /// <summary> /// 演示用的自定义控件 /// </summary> public class ExtButton : Butt ...

  9. WPF 自定义柱状图 BarChart

    WPF 自定义柱状图 当前的Telerik控件.DevExpress控件在图表控件方面做得不错,但是有时项目中需要特定的样式,不是只通过修改图表的模板和样式就能实现的. 或者说,通过修改当前的第三方控 ...

随机推荐

  1. resume.c

    resume.c //采用CURLOPT_RESUME_FROM_LARGE 实现文件断点续传功能 #include <stdlib.h> #include <stdio.h> ...

  2. HDU 1556 Color the ball (数状数组)

    Color the ball Time Limit: 9000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  3. React(0.13) 利用componentDidMount 方法设置一个定时器

    <html> <head> <title>hello world React.js</title> <script src="build ...

  4. 将windows目录共享到linux

    1.将windows目录共享 2.安装cifs 3.  mount -t cifs -o username=电脑登陆用户名,password=电脑登陆用户密码 //127.0.0.1/abc /var ...

  5. 坑爹的高德地图API

    症状 ld: '-[MASearch poiSearchWithOption:]' in *****/Release-iphonesimulator/libMASearchKit.a(MASearch ...

  6. Hive实现从表中随机抽样得到一个不重复的数据样本

    select a.* from ( select a.*,rand(12345) as random from tripdata a ) a where random between 0 and 0. ...

  7. Python 爬虫实例(15) 爬取 汽车之家(汽车授权经销商)

    有人给我吹牛逼,说汽车之家反爬很厉害,我不服气,所以就爬取了一下这个网址. 本片博客的目的是重点的分析定向爬虫的过程,希望读者能学会爬虫的分析流程. 一:爬虫的目标: 打开汽车之家的链接:https: ...

  8. Windows8.1远程桌面时提示凭据不工作的解决方案

    本人两台电脑都是win8.1.首先确认以下三点: 1.密码没有错 2.用户连接没有达到上线(只有我一个人尝试连) 3.该用户已开启远程连接 此时还说凭据不工作的原因是域的问题,因为mstsc默认使用M ...

  9. MySql(十六):MySql架构设计——MySQL Cluster

    前言: MySQL Cluster 是一个基于 NDB Cluster 存储引擎的完整的分布式数据库系统.不仅仅具有高可用性,而且可以自动切分数据,冗余数据等高级功能.和 Oracle Real Cl ...

  10. 如何使用 t-sql 更新数据库中日期字段的部分数据(年?月?日?时?分?秒?)

    嗯,从网上找到了一些内容,综合利用了sql server的一些内置方法 首先是 convert 方法:https://msdn.microsoft.com/zh-cn/library/ms187928 ...