wpf 子窗口调用主窗口控件
本文主要是描述通过子窗口的Click,Loaded,Cloesd等来实现父窗口的一些方法事件,可以用来改变父窗口的控件状态,数值等
子窗口:
public delegate void ChangeHandler(); //首先在子窗口定义委托
注意,此委托定义在nameSpace下,不要定义在Class内,只有定义在nameSpace下的委托才会父窗口被找到
然后在子窗口下定义委托事件:
public event ChangeHandler ChangeEvent;//此事件定义在Class内
定义一个方法执行委托事件:
private void ChageEvent()
{
if (
ChageEvent
!= null)
ChageEvent
(); }
然后在一个触发事件中调用这个方法(按钮事件,loaded事件等)
private void Window_Closed(object sender, EventArgs e)
{
ChageEvent
(); };
然后在父窗口中:
在构造函数中,实例化子窗口:
SonWindow sonWindow = new SonWindow();
sonWindow.ChangeEvent += new ChangeHandler(FunA); //把你需要的方法添加到委托事件中
void FunA()
{
//写你想调用的方法,如重新绑定数据源啊 改变某标签的值啊 等等
}
思路就是定义一个委托,在子窗口中实例化这个委托事件,用子窗口你需要的触发方式去调用这个委托事件;
在父窗口中,提前将这个委托事件绑定好对应的方法即可
本文写的是无参的委托,需要有参的可以参考一下稍微改一下就行。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!