你如何绑定类属性?

时间:2014-05-19 02:39:58

标签: c# xaml windows-phone-8 windows-store-apps windows-phone-8.1

是否可以绑定到类中的属性?

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

    private PointOfView _userPointOfView;
    public PointOfView UserPointOfView
    {
        get { return _userPointOfView; }
        set{ SetProperty(ref _userPointOfView, value); }
    }

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中保存了大量代码重复,而不是为类中的每个属性创建这么多属性。

1 个答案:

答案 0 :(得分:1)

绑定到&#39;嵌套&#39;是非常常见的。属性。如果未出现绑定值,则可能没有正确设置DataContext。使用调试输出窗口提示没有正确绑定的内容。

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