具体实现 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();
- }
以上都是测试数据
原文地址:https://www.cnblogs.com/lonelyxmas/p/12075417.html
时间: 2024-10-02 18:22:58