none
WPF的不同窗体之间控件如何引用? RRS feed

  • 问题

  • 两个窗口,A和B,我现在A窗口有一个ListView显示数据,有一个方法刷新数据,方法里有ListView的控件名字。

    现在想在B调用A的方法,实现B关闭窗口时刷新。请问如何才能做到?

    2019年10月29日 13:16

答案

  • 1 在A页面内打开B页面

    那么可以这么写:

             //A页面内的方法,打开B页面
     private void OpenBpage()
    {
               Window1 Bpage = new Window1();
                Bpage.Show();
                Bpage.Closed += Bpage_Closed;
          }
    
            private void Bpage_Closed(object sender, EventArgs e)
            {
               //更新listview
            }

    2 在B页面内打开A页面

    在B中创建Closed方法,并将A页面更新ListView的方法设为公开类型。在closed方法内更新即可。

    public partial class BPage : Window
        {
            MainWindow APage;
            public BPage()
            {
                InitializeComponent();
                this.Closed += BPage_Closed;
                APage = new MainWindow();
                APage.Show();
    
            }
    
            private void BPage_Closed(object sender, EventArgs e)
            {
                APage.UPDATA();
            }
        }

    2019年10月29日 15:33

全部回复

  • 1 在A页面内打开B页面

    那么可以这么写:

             //A页面内的方法,打开B页面
     private void OpenBpage()
    {
               Window1 Bpage = new Window1();
                Bpage.Show();
                Bpage.Closed += Bpage_Closed;
          }
    
            private void Bpage_Closed(object sender, EventArgs e)
            {
               //更新listview
            }

    2 在B页面内打开A页面

    在B中创建Closed方法,并将A页面更新ListView的方法设为公开类型。在closed方法内更新即可。

    public partial class BPage : Window
        {
            MainWindow APage;
            public BPage()
            {
                InitializeComponent();
                this.Closed += BPage_Closed;
                APage = new MainWindow();
                APage.Show();
    
            }
    
            private void BPage_Closed(object sender, EventArgs e)
            {
                APage.UPDATA();
            }
        }

    2019年10月29日 15:33
  • 原来是用事件

    如果想要写一个自定义事件,就是写一个类似(this.Closed)的事件,应该怎么写?

    这样我可以用自定义事件来,触发被订阅的方法


    2019年10月30日 8:52
  • 如果不是A窗口打开B,也不是B窗口打开A,

    没有用 new新建实例,就用不了上述方法?

    2019年10月30日 13:21
  • 1提供相关代码。

    2如果是close方法已经存在了。你如想自定义事件那就是 用Action和func为类型的event事件就好了。

    https://www.cnblogs.com/hghg/p/10188515.html

    2019年10月30日 13:39