如何在主窗口中创建实例并在另一个类中使用它

本文关键字:另一个 创建 窗口 实例 | 更新日期: 2023-09-27 18:05:23

我有一个严重的问题,我试图在MainWindow类中创建一个实例,像这样:

public MainWindow()
{
     InitializeComponent();
     AppWindow = this;
     CalenderBackground background = new CalenderBackground(Calendar);
}

我需要主窗口中的这个距离,因为类CalenderBackground有一个方法来刷新插入到日历中的前一个日期,我正在使用这个资源。

我想在类Fixtures中使用对象background:

class Fixtures
{
     MainWindow.Calendar.Background = background.GetBackground();
}

但实际上我不能创建这个,因为我看不到变量background,为什么?

如何在主窗口中创建实例并在另一个类中使用它

通过构造函数传递背景对象到fixture ?:

CalenderBackground background = new CalenderBackground(Calendar);
Fixtures fixtures;
public MainWindow()
{
     InitializeComponent();
     AppWindow = this;
     fixtures = new Fixtures(background);
}
class Fixtures
{
    public Fixtures(Background background)
    {
        MainWindow.Calendar.Background = background.GetBackground();
    }
}

您将background声明为MainWindow方法范围内的变量。为了能够在fixture类中访问它,你需要将它作为参数传递给构造函数,然后使用它来设置一个字段,例如:

private CalenderBackground _background;
public Fixtures(CalenderBackground background)
{
   _background = background;
}

或者你可以在主窗口上创建一个公共属性,并从Fixtures类中访问它。

public CalenderBackground Background {get; set;}