Wpf 如何仅绑定到路径的底部?

Wpf 如何仅绑定到路径的底部?,wpf,data-binding,Wpf,Data Binding,假设我有这个绑定: <TextBlock Text="{Binding MyBaseProperty.MySubProperty}" /> 是否可以告诉WPF侦听对MyBaseProperty的更改?每当MyBaseProperty更改为MyBaseProperty的(重新)查询MySubProperty 这个问题背后的背景是:我有一个视图模型,它包含一个属性(MyBaseProperty),指向一个类的实例,该类没有实现INotifyPropertyChanged接口。但是

假设我有这个绑定:

 <TextBlock Text="{Binding MyBaseProperty.MySubProperty}" />

是否可以告诉WPF侦听对MyBaseProperty的更改?每当
MyBaseProperty
更改为
MyBaseProperty
的(重新)查询
MySubProperty

这个问题背后的背景是:我有一个视图模型,它包含一个属性(
MyBaseProperty
),指向一个类的实例,该类没有实现
INotifyPropertyChanged
接口。但是,此
TextBlock
DataContext
实现了
INotifyPropertyChanged
接口,因此可以通知视图对
MyBaseProperty的更改


如果您发现通过路径绑定实现这种基础,我可以绕过ValueConverters,并使用
INotifyPropertyChanged
MySubProperty

支持的属性包装来扩展我的ViewModel,这可能会为您解决问题

您可以侦听MyBaseProperty更改事件,以及该事件发生的时间

您可以像这样强制绑定更新--


最后,我在视图模型中为
MySubProperty
创建了一个包装器。此包装器的定义如下:

public string MySubProperty
{
    get
    {
        return MyBaseProperty.MySubProperty;
    }
    set
    {
        MyBaseProperty.MySubProperty = value;
        FirePropertyChangedEvent("MySubProperty");
    }
}
我进一步添加了对
FirePropertyChangedEvent(“MySubProperty”)的调用
MyBaseProperty
设置器:

private MyBasePropertyType _myBaseProperty;

public MyBasePropertyType MyBaseProperty
{
    get
    {
        return _myBaseProperty;
    }
    set
    {
        _myBaseProperty = value;
        FirePropertyChangedEvent("MyBaseProperty");
        FirePropertyChangedEvent("MySubProperty"); // also inform about changes to MySubProperty
    }
}
最后,我将视图更改为使用视图模型的
MySubProperty
包装器:

 <TextBlock Text="{Binding MySubProperty}" />

谢谢您的回复。这真的感觉不干净,因为它需要我污染视图的代码隐藏。不是我想要的。。。
 <TextBlock Text="{Binding MySubProperty}" />