如何在创建新类时传递类的实例?

时间:2017-12-24 04:04:57

标签: c#

以下是我想做的事情:

public partial class PhrasesFrame : Frame
{
    public PhrasesFrameViewModel vm = new PhrasesFrameViewModel(this);

    public PhrasesFrame()
    {
        InitializeComponent();
    }

public class PhrasesFrameViewModel : ObservableProperty
{

    PhrasesFrame phrasesFrame;

    PhrasesFrameViewModel(PhrasesFrame phrasesFrame) {
        this.phrasesFrame = phrasesFrame;
    }

我想给新的PhrasesFrameViewModel一个对创建它的类的引用。

但是我收到了消息:

  

关键字"此"在当前上下文中不可用

1 个答案:

答案 0 :(得分:3)

在构造函数中创建视图模型,以便在正确的上下文中访问this关键字。

public partial class PhrasesFrame : Frame {
    public PhrasesFrameViewModel vm;

    public PhrasesFrame() {
        InitializeComponent();
        vm = new PhrasesFrameViewModel(this);
    }

    //...
}

这假定视图模型具有可公开访问的构造函数,该构造函数接受传递的参数。

public class PhrasesFrameViewModel : ObservableProperty {

    private readonly PhrasesFrame phrasesFrame;

    public PhrasesFrameViewModel(PhrasesFrame phrasesFrame) {
        this.phrasesFrame = phrasesFrame;
    }

    //...
}