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

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

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

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 event ItemEventHandler ItemEvent;

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窗体方法_赋值_02