大家好,有没有人知道有没有内置的类来解析绑定表达式中的绑定对象,以及它的DataItem和属性路径?
我正在尝试为textbox编写Blend 3行为,它会自动调用绑定到textbox Text属性的对象上的方法。
textbox绑定到viewmodel类上的属性。我想要做的是解析绑定表达式中的viewmodel类,然后调用它。
我首先从行为的相关对象中检索绑定表达式,如下所示:
private BindingExpression GetTextBinding()
{
return this.AssociatedObject.GetBindingExpression(TextBox.TextProperty);
}
完成此操作后,如果我们查看绑定表达式,我们可以看到它通过绑定表达式的DataItem属性引用了数据上下文。
此外,我们还有绑定到绑定表达式的父绑定上的属性的相对路径。
因此,我们可以获得以下信息:
var bindingExpression = GetTextBinding();
object dataContextItem = bindingExpression.DataItem;
PropertyPath relativePropertyPath = bindingExpression.ParentBinding.Path;
现在,这个属性路径可能是一个深度嵌套的复杂路径,我非常希望避免不得不(重新?)实现解析。我已经搜索了.NET文档,并使用反射器跳过了所有的程序集,但都无济于事-我找不到肯定存在的东西-一定有一些类执行数据项(数据上下文)的路径解析。
有没有人知道它可能存在的地方?对于解决绑定对象的替代方法,有什么建议吗?
注意,我正在尝试获取绑定对象,它是绑定属性的父对象(在本例中是string )-显然我可以很容易地获取绑定值,但它是我需要的父对象。
提前感谢您的帮助!菲尔
https://stackoverflow.com/questions/1549785
复制相似问题