WPF 委托 事件 B窗体调用A窗体方法
具体实现 A窗体 中加载B窗体 B窗体触发A窗体里的方法
当点击B窗体确定Button事件 给A窗体俩个TextBox赋值 并关闭B窗体

B窗体
1)定义参数类
2)定义委托 定义委托事件
3) 定义触发事件方法
4) 触发事件方法
A窗体
1)实例化B窗体对象
2)注册定义的事件
3) 实现事件
代码
B窗体
1)定义参数类 也就是 我传过去了俩个字段(这俩个字段 让我封装成的类)
-
//对象
-
public class ItemEventArges:EventArgs
-
{
-
public ItemListControlViewModel value;
-
public ItemEventArges(ItemListControlViewModel v)
-
{
-
value = v;
-
}
-
}
2)3)定义委托与委托事件
-
public delegate void ItemEventHandler(object sender,ItemEventArges arge);
-
public delegate void ItemCloseEventHandler(object sender);
4) 定义触发事件方法 用来方便调用
-
/// <summary>
-
/// 触发事件
-
/// </summary>
-
/// <param name="e"></param>
-
protected virtual void OnItemEvent(ItemEventArges e)
-
{
-
if (ItemEvent != null)
-
{
-
ItemEvent(this, e);
-
}
-
}
5)点击选中按钮时 触发 事件方法 传参
-
private void Button_Click(object sender, RoutedEventArgs e)
-
{
-
ItemListControlViewModel model = Listview.SelectedItem as ItemListControlViewModel;
-
OnItemEvent(new ItemEventArges(model));
-
}
A窗体
1)实例化B窗体 注册事件 实现事件内容
-
//实例化B窗体
-
ItemListControl us = new ItemListControl();
-
//注册事件
-
us.ItemEvent += us_ItemEvent;
-
//实现内容方法
-
void us_ItemEvent(object sender, ItemEventArges arge)
-
{
-
// 赋值
-
TxTItem.Text = arge.value.ItemName;
-
TxtID.Text = arge.value.ItemID;
-
window.Close();
-
}
以上都是测试数据

WPF 委托 事件 B窗体调用A窗体方法的更多相关文章
- wpf 子窗体调用主窗体中函数的实现
子窗体(Win_Set): MainWindow m; m = (MainWindow)this.Owner; m.showText(&qu ...
- Observer设计模式中-委托事件-应用在消息在窗体上显示
Observer设计模式:监视者模式.在类中的方法中处理的结果或者消息通过事件委托 的方式发送给主窗体. 因为在其它类中直接访问主窗体类,显示内容是不能直接调用控件赋值的,当然也有别的类似查阅控件名, ...
- 子窗体与父窗体调用对方js方法
有时候为了减少一个页面内的代码量,会将部分内容放到子窗体中,如后台管理中用iframe来进行管理 <div> <iframe id="dviframe" src= ...
- winform 子窗体调用父窗体中的方法
在父窗体里定义委托 public delegate void inis(string str); 在父窗体中定义要调用的方法 public void inigs(string gs) { textBo ...
- C# 在子窗体调用父窗体的值(转)
1.在父窗体中 public delegate void SetVisiableHandler();//定义委托类型 注意此委托定义在namespace下一级,在form类外 private void ...
- WinForm------SplitContainerControl的窗体调用控件方法
Frm_Books窗体(窗体里面有个按钮跳转Frm_Book_Select窗体) private void Add_Book_ItemClick(object sender, DevExpress.X ...
- C# 、子窗体调用父窗体属性、方法
namespace Test { public partial class FrmMain : Form { public FrmMain() { InitializeComponent(); } p ...
- 委托事件和jquery中的delegate方法
利用事件冒泡的特性,给父元素绑定事件,然后判断事件对象,来给父元素的每个子元素添加事件,而不是直接在所有的子元素上绑定事件: <ul> <li></li> < ...
- C# 利用委托事件进行窗体间的传值(新手必看)
引言: 窗体间传值是每个学习WinForm新手的常见问题,最初级的方法就是 在窗体中先获取到要接受值窗体.然后通过.得到某个空间或者属性,直接赋值,这个需要接收放的窗体属性或者空间必须是public ...
随机推荐
- ubuntu 安装在硬盘与配置
安装 下载Ubuntu ISO文件,使用rufus制作启动U盘,重启选择这个U盘启动. 用rufus做启动盘时,提示缺少文件,点下载,找到log,进入找到下载地址,手动下载,并放到软件所在路径下的文件 ...
- Flutter安装入门教程
### 前言 Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面. Flutter可以与现有的代码一起工作.在全世界,Flutter正在被越来越多的开发者和 ...
- @supports特性查询
特性查询也就是@supports规则,这个属性是作为CSS2.0扩展被引入的,是检测浏览器是否支持css属性值,是由逻辑与,逻辑或和逻辑非组合而成.主要的目的就是为了作者能够在不同的浏览器上根据不同的 ...
- chunked
简介 chunked是一种HTTP协议的分块传输编码的机制,即一个HTTP消息可以分成多个部分进行传输,它对于HTTP请求和HTTP响应都适用.对于非持续连接,浏览器通过连接是否关闭来界定请求和响应实 ...
- SSH的 Write failed: Broken pipe 问题
问题现象: 表示连接管道已经断开 解决方法: 方法一:客户端配置 在客户端的 ~/.ssh/ config文件(如不存在请自行创建)中添加下面内容: ServerAliveInterval 60 方法 ...
- Redis学习笔记(九、Redis总结)
1.Redis五大对象: 在Redis中有五大对象,分别是String.List.Hash.Set.Sorted Set. 这五大对象都有自己独特的编码方式,每个编码的实现都不一样,有自己独特的使用场 ...
- echarts堆叠图计算总数和各部分
app.title = '堆叠条形图'; option = { tooltip : { trigger: 'axis', axisPointer : { // 坐标轴指示器,坐标轴触发有效 type ...
- 剑指Offer-45.扑克牌顺子(C++/Java)
题目: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定 ...
- spring-db-事务
--都是之前各位大佬总结好的,我只是肤浅的汇总一下,结合我犯得错误,适合像我一样的萌新看 第一:@Transcation 引入的注解 package org.springframework.trans ...
- 递归找到多级文件夹中所有pdf文件的py程序
因个人需要,写了一个可以递归找到多级文件夹中所有pdf的小程序,发布出来供有需要的人参考或使用. import os import re import shutil from os.path impo ...