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>