如何绑定到类属性

本文关键字:属性 绑定 何绑定 | 更新日期: 2023-09-27 18:04:02

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

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

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

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

在我的应用程序中,我这样设置数据上下文

    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,那么你的绑定不会自动更新。它将只显示绑定建立时第一次出现的值。