C# 绑定到文本块时出现问题-Windows Phone-MVVM

C# 绑定到文本块时出现问题-Windows Phone-MVVM,c#,xaml,mvvm,windows-phone-8,windows-phone,C#,Xaml,Mvvm,Windows Phone 8,Windows Phone,我花了几个小时试图解决这个问题。下面是正在发生的事情: 我正在尝试从ViewModel中将标题绑定到XAML文件。所有代码都会执行(我使用断点/监视进行了检查),但绑定实际上不起作用。我对开发非常陌生,尤其是MVVM,所以我很难弄明白这一点。相关代码: App.Xaml.Cs private static MainPageViewModel _mainPageViewModel = null; public static MainPageViewModel MainPa

我花了几个小时试图解决这个问题。下面是正在发生的事情:

我正在尝试从ViewModel中将标题绑定到XAML文件。所有代码都会执行(我使用断点/监视进行了检查),但绑定实际上不起作用。我对开发非常陌生,尤其是MVVM,所以我很难弄明白这一点。相关代码:

App.Xaml.Cs

        private static MainPageViewModel _mainPageViewModel = null;

    public static MainPageViewModel MainPageViewModel
    {
        get
        {
            if (_mainPageViewModel == null)
            {
                _mainPageViewModel = new MainPageViewModel();
            }
            return _mainPageViewModel;
        }
    }
主页模型

        public class MainPageModel : BaseModel
{
    private string _pageTitle;
    public string PageTitle
    {
        get { return _pageTitle; }
        set
        {
            if (_pageTitle != value)
            {
                NotifyPropertyChanging();
                _pageTitle = value;
                NotifyPropertyChanged();
            }
        }
    }
MainPageViewModel

        private void LoadAll()
    {
        var page = new MainPageModel();
        page.PageTitle = "title";
        public MainPageViewModel()
    {

        LoadAll();
    }
MainPageViewModel

        private void LoadAll()
    {
        var page = new MainPageModel();
        page.PageTitle = "title";
        public MainPageViewModel()
    {

        LoadAll();
    }
MainPage.Xaml.Cs

        public MainPage()
    {
        InitializeComponent();
        DataContext = App.MainPageViewModel;
    }
MainPage.Xaml

<Grid x:Name="LayoutRoot">
    <phone:Panorama Title="{Binding PageTitle}">

我是否也需要Xaml中的using语句?我想我只需要在MainPage.Xaml.Cs文件中设置数据上下文


我很确定我已经发布了所有与此相关的代码。谢谢大家

问题在这里,在视图模型类中:

private void LoadAll()
{
    var page = new MainPageModel();
    page.PageTitle = "title";
您在这里所做的只是创建一个本地对象“页面”——这在本地范围之外的任何地方都是不可访问的。我想你想做的是让“页面”成为“MainPageViewModel”的成员:

这样,您就可以绑定到“PageTitle”属性——但请记住,它是一个嵌套属性,因此您需要:

<phone:Panorama Title="{Binding Model.PageTitle}">