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. 【算法】MD5加密

    1.什么是MD5 MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍 ...

  2. 搭建自己的 github.io 博客

    1.前言 github.io 是基于 Github 的 repo 管理,这意味着咱们对其是有绝对的控制,这个跟放在第三方的平台比,可控性要好太多. 使用 github pages 服务搭建博客的好处有 ...

  3. 【Algorithm】插入排序

    一. 算法描述 插入排序具体算法描述如下: 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果该元素(已排序)大于新元素,将该元素移到下一位置 重复步 ...

  4. MySQL视图已经授权,但是无法访问

    开发发来问题说,开发环境的几个视图已经授权,但是指定用户登录后却无法访问.报错信息如下: [SQL]select * from ipost; [Err] - Access denied for use ...

  5. tableView的用法具体解释

    1 tableView的类型   1.1 UITableViewStylePlain  没有区头 不显区头     向上滑动区头不会移动到屏幕外面 ' 1.2 UITableViewStyleGrou ...

  6. GDI+绘制渐变色

    例1: void CTextDlg::OnPaint(){Graphics graphics(this->m_hWnd); LinearGradientBrush linGrBrush( Poi ...

  7. C#文件下载(实现断点续传)

    public class WebDown { /// 下载文件方法 /// 文件保存路径和文件名 /// 返回服务器文件名 public static bool DeownloadFile(strin ...

  8. Mac下安装mysql8.0.11

    1.下载MySQL Community 版本:8.0.11,本次例子是以dmg安装的方式,下载的文件名为:mysql-8.0.11-macos10.13-x86_64.dmg 下载地址:https:/ ...

  9. Java 打印程序设计实例

    3.1 打印文本 3.1.1 应用场景 假设我们需要打印一个窗体的某个文本编辑域(可能只有几行,也可能包含多页)的内容,并且每页最多打印 54 行,如何实现呢? 3.1.2 解决方法 基本思路如下:首 ...

  10. oracle PLSQL 多结果集嵌套循环处理优化

    oracle多结果集嵌套循环处理优化 --性能差 begin for a in (select id,name,sex,idcard from people) loop for b in (selec ...