C# 如何绑定到类属性?

C# 如何绑定到类属性?,c#,xaml,windows-phone-8,windows-store-apps,windows-phone-8.1,C#,Xaml,Windows Phone 8,Windows Store Apps,Windows Phone 8.1,是否可以绑定到类内的属性 假设我的ViewModel中有这样一个属性(我的ViewModel继承自BindableBase) 其中PointOfView类有一些属性,比如一个名为“UserString”的字符串变量 在我的应用程序中,我像这样设置我的datacontext public MainPage() { this.InitializeComponent(); DataContext = App.ViewModel; Po

是否可以绑定到类内的属性

假设我的ViewModel中有这样一个属性(我的ViewModel继承自BindableBase)

其中PointOfView类有一些属性,比如一个名为“UserString”的字符串变量

在我的应用程序中,我像这样设置我的datacontext

    public MainPage()
    {
        this.InitializeComponent();
        DataContext = App.ViewModel;


        PointOfView POV = bew PointOfView();
        POV.UserString = "Test";
        App.ViewModel.UserPointOfView = POV;

    }
我想在XAML中做的是

<TextBlock Text="{Binding UserPointOfView.UserString, Mode="OneWay"}"></TextBlock>

无论如何,我尝试了类似的方法,但它从未更新xaml页面上的文本块


有人知道有没有办法做到这一点吗?在我的ViewModel中,这将更容易,并节省大量代码重复,而不是为类中的每个属性创建如此多的属性。

绑定到“嵌套”属性是可能的,也是非常常见的。如果未显示绑定值,则可能未正确设置DataContext。使用“调试输出”窗口提示哪些内容未正确绑定


此外,如果您的PointOfView类未实现INotifyPropertyChanged,则绑定不会自动更新。它将只显示在绑定建立时首次出现的值。

您是说我想要从中获取数据的类中的每个属性都需要实现INotifyPropertyChanged?不,PointOfView(主机)类需要实现此接口。否则,我需要像下面这样更新整个类。ViewModel.UserPointOfView=POV;每次它里面的一个属性发生变化时?(即,如果我没有在该类上实现INotifyPropertyChanged)是的,只有在绑定源或绑定路径中的某个属性上引发
PropertyChanged
事件时,绑定才会更新。
<TextBlock Text="{Binding UserPointOfView.UserString, Mode="OneWay"}"></TextBlock>