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

如何在事件处理程序方法中通过引用发送变量?


我试过使用委托将它发送到另一个函数,该函数保存我需要的变量并且它有效。但是,它创建了一个变量的副本,而且我无法从委托函数更改主类中的值。然后我想到将函数移动到一个类并将所有变量存储在类中,以便它们可以获取和设置。但是,因为它是一个类并且不继承主类,所以找不到 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(); 行 它坏了。


繁星点点滴滴
浏览 51回答 1
1回答

慕婉清6462132

您可以将 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();}
打开App,查看更多内容
随时随地看视频慕课网APP