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 ...
随机推荐
- Prism_Event Aggregator(4)
Event Aggregator Prism库提供了一种事件机制,可以在应用程序中松散耦合的组件之间进行通信.该机制基于事件聚合器服务,允许发布者和订阅者通过事件进行通信,但仍然没有彼此直接引用. 在 ...
- C# ling to sql 取多条记录最大时间
var _setList = (from f in _postgreDbContext.settlements group f by ( new { f.settlement_code })into ...
- MySQL日志简介
一.MySQL日志简介 二.错误日志 作用: 记录mysql数据库的一般状态信息及报错信息,是我们对于数据库常规报错处理的常用日志. 默认位置: $MYSQL_HOME/data/ 开启方式:(MyS ...
- 如何通过QT designer设置不让窗口最大化
最近使用QT写一个小窗口的程序,窗口通过QT designer制作之后,运行时可以最大化操作,且最大化之后界面上控件也不会随窗口变化而变化,但由于人都比较懒,直接在QT designer设置窗口属性时 ...
- redis为什么是单线程而且速度快?
redis支持的5种数据类型: 1.String(字符串) 2.List(数组或列表) 3.Set(集合) 4.Hash(哈希或字典) 5.ZSet(有序集合) 数据库的工作模式按存储方式可分为: 硬 ...
- 多项式总结(STAGE 1)
这么难的专题居然只给了这么短时间... 然而在NC的教导之下还是有一定的收获的. 必须打广告:0,1,2,3 附带一个垃圾博客:-1 按照习惯,堆砌结论而不加证明. Section1 导数: 基本形式 ...
- 在eclipse中添加jdk源码
window->Preferences->java->Installed JREs 点击你的jre然后点右边的Edit 找到以rt.jar结尾的jar,点击右边的Source Att ...
- SpringCloud 服务间互相调用 @FeignClient注解
SpringCloud搭建各种微服务之后,服务间通常存在相互调用的需求,SpringCloud提供了@FeignClient 注解非常优雅的解决了这个问题 首先,保证几个服务都在一个Eureka中注册 ...
- 使用matplotlib.pyplot中scatter()绘制散点图
1.二维散点图 二维散点图的函数原型: matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=Non ...
- C++利用宏实现变量交换的三种方式
#include <iostream> using namespace std; //引入中间变量 #define SWAP1(a,b) {int tmp=a;a=b;b=tmp;} // ...