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

时间:2015-07-29 10:08:29

标签: c# wpf

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

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

我在MainWindow中需要这个等级因为类CalenderBackground有一个方法来刷新插入日历的前一个日期,我使用this资源。

我想在课程background中使用对象Fixtures

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

但实际上我无法创建,因为我无法看到变量background,为什么?

2 个答案:

答案 0 :(得分:0)

通过构造函数将Background对象传递到Fixtures中?:

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();
    }
}

答案 1 :(得分:0)

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

private CalenderBackground _background;

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

或者您可以在MainWindow上创建一个公共property,并从Fixtures类中访问它。

public CalenderBackground Background {get; set;}