我有一个Binding
对象,我想知道该Binding
的父对象。
例:
<Label Name="BindingLabel" Content="{Binding Path=LabelText}"/>
在示例中,
Binding
的父级是名称为BindingLabel的Label
,我搜索仅从Binding
对象获取它的方法。谢谢!
最佳答案
Binding
可以用于多个对象,因此不能有单个Parent
。如果您知道要查看的对象(例如,您已经有一个列表,或者可以走一棵树)以及要检查的依赖项属性,则可以检查元素是否使用该绑定。
如果您拥有所使用的Binding
的确切实例,可以按照以下方法进行操作:
Binding binding = // whatever (must be the same instance used in the object)
IEnumerable<Label> labels = // whatever
foreach (var label in labels)
{
if (label.GetBindingExpression(Label.ContentProperty).ParentBinding
== binding)
{
// found it!
}
}
或者,也许您只想比较路径:
var path = "LabelText";
IEnumerable<Label> labels = // whatever
foreach (var label in labels)
{
if (label.GetBindingExpression(Label.ContentProperty).ParentBinding.Path.Path
== path)
{
// found it!
}
}
关于c# - 获取绑定(bind)的父项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23391060/