具体实现 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 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();
}
以上都是测试数据