WPF子界面向父界面传递带参数的委托

需求如下:

父界面上有几个按钮,需要在点击按钮的时候向父界面传值,以知道该控制哪个界面显示。

父界面:WIN1

子界面:WIN2

此处或者说是子控件向父控件传值

1.子界面定义委托

WIN1里写:

public delegate void ChangeTextHandler(string text);

public event ChangeTextHandler ChangeTextEvent;

2.父界面在加载了子界面之后,注册委托。必须在父界面load的时候或者之前注册

WIN2里写:

ucSetting1.ChangeTextEvent += new Control.ucSetting.ChangeTextHandler(ShowMessage);

这里ucSetting1就是子控件名

3.然后在父界面写好委托相应的实现函数ShowMessage

还是在WIN2

private void ShowMessage(string msgx)

{

switch (msgx)

{

//DOSTH

}

}

4.完了之后要在子界面写触发委托的函数。

在WIN1写:

public string text;

text = "SystemSettingControl"

if (ChangeTextEvent != null)

{

ChangeTextEvent(text);

}

然后界面运行的时候就会根据传入的参数执行相应的父界面里的函数.

其实说白了也挺简单,弄会了的话,并不难

时间: 2024-10-27 09:36:07

WPF子界面向父界面传递带参数的委托的相关文章

Vue父组件向子组件传递方法(自定义方法)并且子组件向父组件传递数据

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

vuejs子组件向父组件传递数据

子组件通过$emit方法向父组件发送数据,子组件在父组件的模板中,通过自定义事件接收到数据,并通过自定义函数操作数据 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script type="text/javascript" src="

iOS NSNotification传递带参数的通知

原文链接: iOS NSNotification传递带参数的通知 简书主页:http://www.jianshu.com/users/37f2920f6848 Github主页:https://github.com/MajorLMJ iOS开发者公会-技术1群 QQ群号:87440292 iOS开发者公会-技术2群 QQ群号:232702419 iOS开发者公会-议事区   QQ群号:413102158

JS加载获取父窗体传递的参数

JS加载获取父窗体传递的参数 $(document).ready(function () { var query = location.search.substring(1); var values = query.split("&"); for (var i = 0; i < values.length; i++) { var pos = values[i].indexOf('='); if (pos == -1) continue; var paramname = v

JS中setInterval、setTimeout不能传递带参数的函数的解决方案

在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数,接下来为大家介绍具体的解决方法 在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要带参数, 这就需要想方法解决. 一.采用字符串形式:——(缺陷)参数不能被周期性改变 setInterval("foo(id)",1000); 二.匿名函数包装 (推荐) window.setInterval(

JS中setInterval、setTimeout不能传递带参数的函数的解决方法

setInterval 和 setTimeout 这两个函数比较好用,但会遇到比如说我隔个几秒后要执行的函数是带参数的,这种情况怎么办?可以用匿名函数包装处理 //不带参数的函数 function test(){} setTimeout(test,1000) //带参数的函数,用匿名函数包装(可以实现动态传参) function onemodelanima(o, tobestatus, time, easing, origin){ if(easing == null){ easing = "&q

解决 js setTimeout 传递带参数的函数无效果

最近 js  用到 setTimeout 递归调用 刷新进度  setTimeout ("getProgress(name,type)", 3000) ; 发现getProgress函数 带上参数 就失效了,不带参数可以调用又达不到效果 解决办法:匿名函数包装  改成如下即可  setTimeout(function(){getProgress(name, type)}, 3000);   原文地址:https://www.cnblogs.com/ysx215/p/9057463.ht

vue组件-子组件向父组件传递数据-自定义事件

自定义事件 我们知道,父组件是使用 props 传递数据给子组件,但如果子组件要把数据传递回去,应该怎样做?那就是自定义事件!

Vue子页面给父页面传递数据

子页面: <template> <div> <p>子组件</p> <button @click="sendMsg">传递到父页面</button> </div></template> <script> export default { name: 'child', data() { return { msg:'子组件数据' } }, computed:{ addNum(){ re