C# WPF获取指向模型中属性的所有绑定

C# WPF获取指向模型中属性的所有绑定,c#,.net,wpf,data-binding,binding,C#,.net,Wpf,Data Binding,Binding,我有这样一个场景 <StackPanel DataContext="{Binding WorldConfig}"> <TextBox Text="{Binding Width}"> </StackPanel> 但它会在所有窗口中搜索DataContext等于第一个参数的FrameworkElement,然后搜索ResolvedSourcePropertyName等于第二个参数的BindingExpression。而且效率很低。我曾想过缓存结果,但在运行时

我有这样一个场景

<StackPanel DataContext="{Binding WorldConfig}">
  <TextBox Text="{Binding Width}">
</StackPanel>
但它会在所有窗口中搜索DataContext等于第一个参数的FrameworkElement,然后搜索ResolvedSourcePropertyName等于第二个参数的BindingExpression。而且效率很低。我曾想过缓存结果,但在运行时对绑定的任何更改都会破坏它

我正在寻找一种更有效的方法来做到这一点


我认为这些bindingExpression必须存储在我可以查询的地方,但我找不到它,只有搜索结果与此相反。

您可能可以编写一个
Binding
的子类,它保持所有实例的静态集合,虽然我不想写代码来删减那些过时的。为什么需要这样做?在
public string this[string columnName]{get{…}
中,我需要通过相互比较来验证两个属性,但在此之前,我想检查它们本身是否有效,因此我需要在该上下文中获取它们的ValidationErrors,这都是viewmodel的内容。为什么要涉及绑定?我的属性是整数,如果绑定的文本框不包含有效的整数,我希望避免进行模型验证。如果没有访问ValidationError,我无法检测是否在我的模型中错误写入了整数。如果我理解正确,听起来可能会解决您的问题。
BindingUtil.GetAllBindings(WorldConfig, "Width")