WPF 委托 事件 B窗体调用A窗体方法

2021-01-23 06:14

阅读:465

标签:方法   listview   com   sdn   调用   copy   shadow   value   sele   

原文:WPF 委托 事件 B窗体调用A窗体方法

具体实现 A窗体 中加载B窗体  B窗体触发A窗体里的方法

当点击B窗体确定Button事件   给A窗体俩个TextBox赋值 并关闭B窗体

技术图片

B窗体

1)定义参数类 

2)定义委托 定义委托事件

3) 定义触发事件方法

4) 触发事件方法

A窗体

1)实例化B窗体对象

2)注册定义的事件

3) 实现事件

 代码

B窗体

1)定义参数类 也就是 我传过去了俩个字段(这俩个字段 让我封装成的类)

  1. //对象
  2. public class ItemEventArges:EventArgs
  3. {
  4. public ItemListControlViewModel value;
  5. public ItemEventArges(ItemListControlViewModel v)
  6. {
  7. value = v;
  8. }
  9. }

 

2)3)定义委托与委托事件

  1. public delegate void ItemEventHandler(object sender,ItemEventArges arge);
  2. public delegate void ItemCloseEventHandler(object sender);

4) 定义触发事件方法 用来方便调用

  1. ///
  2. /// 触发事件
  3. ///
  4. ///
  5. protected virtual void OnItemEvent(ItemEventArges e)
  6. {
  7. if (ItemEvent != null)
  8. {
  9. ItemEvent(this, e);
  10. }
  11. }

5)点击选中按钮时 触发  事件方法 传参

  1. private void Button_Click(object sender, RoutedEventArgs e)
  2. {
  3. ItemListControlViewModel model = Listview.SelectedItem as ItemListControlViewModel;
  4. OnItemEvent(new ItemEventArges(model));
  5. }

A窗体

1)实例化B窗体 注册事件  实现事件内容

  1. //实例化B窗体
  2. ItemListControl us = new ItemListControl();
  3. //注册事件
  4. us.ItemEvent += us_ItemEvent;
  5. //实现内容方法
  6. void us_ItemEvent(object sender, ItemEventArges arge)
  7. {
  8. // 赋值
  9. TxTItem.Text = arge.value.ItemName;
  10. TxtID.Text = arge.value.ItemID;
  11. window.Close();
  12. }

以上都是测试数据 

技术图片

WPF 委托 事件 B窗体调用A窗体方法

标签:方法   listview   com   sdn   调用   copy   shadow   value   sele   

原文地址:https://www.cnblogs.com/lonelyxmas/p/12075417.html


评论


亲,登录后才可以留言!