我有一个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/

10-12 19:21