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()
  {
       
//写你想调用的方法,如重新绑定数据源啊 改变某标签的值啊 等等
   
 }

思路就是定义一个委托,在子窗口中实例化这个委托事件,用子窗口你需要的触发方式去调用这个委托事件;
在父窗口中,提前将这个委托事件绑定好对应的方法即可

本文写的是无参的委托,需要有参的可以参考一下稍微改一下就行。

posted @   多见多闻  阅读(868)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示