ViewModel中的c#null引用

时间:2018-02-26 04:46:04

标签: c# mvvm nullreferenceexception

我不知道为什么我的viewmodel在调用One_Clicked时为null,我在viewmodel中缺少什么。当我发现未知标识符在DisplayLabel属性上时,我已经尝试过调试它。

这是我的ViewModel:

public class AboutViewModel : BaseViewModel
{
    public AboutViewModel()
    {
        Title = "About";
    }

    string displayLabel = "0";
    public string DisPlayLabel
    {
        get { return displayLabel; }
        set { SetProperty(ref displayLabel, value); }
    }

    public void ButtonOne()
    {
        DisPlayLabel = "1";
    }
}

以下是调用viewmodel的代码:

public partial class AboutPage : ContentPage
{
    private AboutViewModel viewmodel;

    void Clear_Clicked(object sender, EventArgs e)
    {
    }

    void One_Clicked(object sender, EventArgs e)
    {
        if (viewmodel != null)
        {
            viewmodel.ButtonOne();
        }
    }

    public AboutPage()
    {
        InitializeComponent();
    }
}

1 个答案:

答案 0 :(得分:1)

private AboutViewModel viewmodel;

这不会神奇地初始化。

您可以在.xaml.cs文件中执行此操作:

private AboutViewModel viewmodel = new AboutViewModel();

或者您通过DataTemplate直接在xaml中执行此操作。您可以看到example here.