WPF 自定义事件
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 自定义事件的更多相关文章
- WPF自定义路由事件(二)
WPF中的路由事件 as U know,和以前Windows消息事件区别不再多讲,这篇博文中,将首先回顾下WPF内置的路由事件的用法,然后在此基础上自定义一个路由事件. 1.WPF内置路由事件 WPF ...
- 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 ...
- 细说WPF自定义路由事件
WPF中的路由事件 as U know,和以前Windows消息事件区别不再多讲,这篇博文中,将首先回顾下WPF内置的路由事件的用法,然后在此基础上自定义一个路由事件. 1.WPF内置路由事件 W ...
- 【2016-11-11】【坚持学习】【Day24】【WPF 自定义控件 附加属性 自定义事件】
UserControl ,自定义控件. 这里刚刚想到一个问题.什么时候应该用usercontrol 定义一个控件.什么时候应该重写控件的template和样式,实现新效果. 引用一下人家的话:http ...
- WPF自定义RoutedEvent事件示例代码
************************* 引用网友,便于查找所用..... 创建自定义路由事件和应用分为6个步骤: (1)自定义路由事件参数对象 (2)声明并注册路由事件 (3)为路由事件添 ...
- WPF 自定义路由事件
如何:创建自定义路由事件 首先自定义事件支持事件路由,需要使用 RegisterRoutedEvent 方法注册 RoutedEvent C#语法 public static RoutedEvent ...
- WPF自定义路由事件(一)
首先自定义事件支持事件路由,需要使用 RegisterRoutedEvent 方法注册 RoutedEvent C#语法 public static RoutedEvent RegisterRoute ...
- WPF 创建自定义控件及自定义事件
1 创建自定义控件及自定义事件 /// <summary> /// 演示用的自定义控件 /// </summary> public class ExtButton : Butt ...
- WPF 自定义柱状图 BarChart
WPF 自定义柱状图 当前的Telerik控件.DevExpress控件在图表控件方面做得不错,但是有时项目中需要特定的样式,不是只通过修改图表的模板和样式就能实现的. 或者说,通过修改当前的第三方控 ...
随机推荐
- C# 程序打包Release版本
注意:DEBUG和RELEASE的区别,DEBUG下可以直接运行,而RELEASE不一定能直接运行,这并不是表示RELEASE版本有问题,而是表示两者需要操作不同.RELEASE版本要比DEBUG版本 ...
- Firefox 网络调试工具
1.Firefox 简介 Firefox 官网下载地址 Firefox 其它下载地址 Firefox 58.0.2 for Mac,密码:346y. Firefox 36.0.4 for Mac,密码 ...
- mysql合并binlog
例如: PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL DAY);
- MongoDB----逻辑与物理存储结构
基本的操作 一.常用的命令和基础知识 1.进入MongoDB shell 首先我们进入到MongoDB所在目录执行 cd /work/app/mongodb/bin/ #启动 ./mongo 为了方便 ...
- SQL Tuning Advisor
SQL Tuning Advisorsql调优顾问可提供的建议有:-收集对象的统计信息-创建索引-重写sql语句-创建sql profile-创建sql plan baseline SQL Tunin ...
- sqlserver 在尝试加载程序集 ID 65537 时 Microsoft .NET Framework 出错.服务器可能资源不足
报错信息: 处理报表时出错. 对数据集“query”执行查询失败. 在尝试加载程序集 ID 65536 时 Microsoft .NET Framework 出错.服务器可能资源不足,或者不信任该程序 ...
- java中如何将byte[]里面的数据转换成16进制字符串
原文链接: http://zhidao.baidu.com/link?url=RmLDjr4PtP_oUE5J2pKNZSvlHt1K7HcCh4-03Y7VkXYhJ0kawg01CtKHZc2uB ...
- java时区转化相关工具方法
import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java. ...
- 扯淡 id 先用着
)) { ) { ) & ) { ); }}
- 关于解决多台linux服务器间的文件实时同步问题
最近要做一个相关的解决方案,在虚拟机测试没有问题.给大家分享出来,有更好的解决方案,欢迎讨论. 1.1 inotify相关介绍 1.rsync 与传统的cp.tar备份方式相比,rsync具有安全性高 ...