为了账号安全,请及时绑定邮箱和手机立即绑定

试图将 MainWindow 继承到子类中,但得到系统 stackoverflow

试图将 MainWindow 继承到子类中,但得到系统 stackoverflow

C#
繁星点点滴滴 2022-12-31 13:02:55
如何在事件处理程序方法中通过引用发送变量?我试过使用委托将它发送到另一个函数,该函数保存我需要的变量并且它有效。但是,它创建了一个变量的副本,而且我无法从委托函数更改主类中的值。然后我想到将函数移动到一个类并将所有变量存储在类中,以便它们可以获取和设置。但是,因为它是一个类并且不继承主类,所以找不到 WPF/XAML 对象。我试过继承主类,但因为我在主类内部创建类,并且它有效地继承了自身,所以它进入了一个无法逃脱的循环。public partial class MainWindow : Window{    public class Program : MainWindow    {        public string Word { get; set; }        public void WhenPressed_1(object sender, RoutedEventArgs e)        {            lable_1.Content = Word;        }    }    public MainWindow()    {                    InitializeComponent();        Program test = new Program();        Button_1.Click += delegate (object sender, RoutedEventArgs e) { test.WhenPressed_1(sender, e); };    }       }它位于 Program test = new Program(); 行 它坏了。
查看完整描述

1 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

您可以将 MainWindow 对象传递给程序类并更改您想要的值


   public partial class MainWindow : Window, ICommon

{


    public MainWindow()

    {

        InitializeComponent();

        Program test = new Program();

        thisButton.Click += delegate(object sender, RoutedEventArgs e) { test.WhenPressed_1(this); };

    }


    public void SetValueInMain()

    {

        // Set Main values

    }


    public class Program

    {

        public string Word { get; set; }

        public void WhenPressed_1(ICommon mainWind)

        {

            mainWind.SetValueInMain();

        }

    }

}


public interface ICommon

{

    void SetValueInMain();

}


查看完整回答
反对 回复 2022-12-31
  • 1 回答
  • 0 关注
  • 50 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信