WPF中子窗体通过事件像主窗体传值
- 子窗体声明事件
在命名空间下声明委托
public delegate void SxDelegate( string leIn, string riIn);//声明委托
在子窗体类下声明事件
public event SxDelegate SxEvent;//声明事件
在事件中传入值
private void OkD_Click(object sender, RoutedEventArgs e)
{
SxEvent?.Invoke(leftT.Text, rightT.Text);
//相当于下方代码
//if (SxEvent != null)//一定要判断事件是否为空,否则会出现空指向异常
//{
// SxEvent(idT.Text, leftT.Text, rightT.Text);//触发事件
//}
Close();
}
- 主窗体调用事件
加载子窗体事件
ShuXingAdd shuXingAdd = new ShuXingAdd();
shuXingAdd.Show();//显示子窗体
shuXingAdd.SxEvent += ShuXingAdd_SxEvent;//加载之前的事件
事件处理
private void ShuXingAdd_SxEvent(string leIn, string riIn)
{
Save_SX(iD_SX, leIn, riIn);//leIn, riIn为子窗体点击确定按钮传过来的值,此为处理值得方法
}