无论绑定是如何定义的,我都想始终如一地解析控件绑定到的对象实例和属性。
我做了以下事情:
BindingExpression bindingExpression =
baseEdit.GetBindingExpression(BaseEdit.EditValueProperty);
if (bindingExpression == null) continue;
Binding binding = bindingExpression.ParentBinding;
string propertyName = binding.Path.Path;
上面的方法在大多数情况下都有效,但有时它并没有给我想要的东西——我理解为什么它没有,但我找不到找到我想要的东西的方法。
例如,以下内容打破了我所拥有的东西,因为它返回DataContext.CurrentMileage
了这不是我想要的。我只想要CurrentMileage
。
{Binding DataContext.CurrentMileage, ValidatesOnDataErrors=True, RelativeSource={RelativeSource AncestorType={x:Type view:ViewBase}}}