C# 获取绑定的父级

C# 获取绑定的父级,c#,wpf,binding,C#,Wpf,Binding,我有一个绑定对象,我想知道这个绑定的父对象 例如: <Label Name="BindingLabel" Content="{Binding Path=LabelText}"/> 在示例中,Binding的父对象是名为BindingLabel的Label,我只从Binding对象中搜索它 谢谢 A可以在多个对象上使用,因此它不能有一个父对象。如果您知道正在查看哪些对象(例如,您已经有一个列表,或者您可以遍历一棵树)以及要检查哪些依赖项属性,那么您可以检查元素是否使用该绑定 如果

我有一个
绑定
对象,我想知道这个
绑定
的父对象

例如:

<Label Name="BindingLabel" Content="{Binding Path=LabelText}"/>

在示例中,
Binding
的父对象是名为BindingLabel
Label
,我只从
Binding
对象中搜索它

谢谢

A可以在多个对象上使用,因此它不能有一个父对象。如果您知道正在查看哪些对象(例如,您已经有一个列表,或者您可以遍历一棵树)以及要检查哪些依赖项属性,那么您可以检查元素是否使用该绑定

如果您有使用的
绑定
的确切实例,以下是如何做到这一点:

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!
    }
}
Binding=//无论什么(必须是对象中使用的同一实例)
IEnumerable labels=//随便什么
foreach(标签中的变量标签)
{
if(label.GetBindingExpression(label.ContentProperty).ParentBinding
==绑定)
{
//找到了!
}
}
或者,您可能只是想比较路径:

var path = "LabelText";
IEnumerable<Label> labels = // whatever
foreach (var label in labels)
{
    if (label.GetBindingExpression(Label.ContentProperty).ParentBinding.Path.Path
        == path)
    {
        // found it!
    }
}
var path=“LabelText”;
IEnumerable labels=//随便什么
foreach(标签中的变量标签)
{
if(label.GetBindingExpression(label.ContentProperty).ParentBinding.Path.Path
==路径)
{
//找到了!
}
}

你的问题有点模糊,因为你没有描述你打算用它做什么。如果要设置标签的特定属性,可以使用valueconverter。此外,您可以通过在(多)绑定中使用RelativeSource=Self来传递对对象本身的引用



我没有测试代码,所以我可能会放弃绑定声明之类的东西。

我现在就是这样做的,但我正在寻找一种不知道所有对象的方法。
<Label> 
   <Label.Content> 
      <MultiBinding Converter="{StaticResource MyConverter}"> 
          <MultiBinding.Bindings> 
             <Binding Path="LabelText" /> 
             <Binding RelativeSource="{RelativeSource Self}"/> 
          </MultiBinding.Bindings> 
       </MultiBinding> 
   </Label.Content> 
</Label>