WPF:获取控件绑定在代码后面的属性

时间:2010-05-04 17:34:50

标签: c# wpf binding

我试图找到一种方法来获取控件绑定的属性(在c#中)。

如果我有以下内容:

<dxe:ComboBoxEdit DisplayMember="Name" ItemsSource="{Binding Path=NameOptions, Mode=OneTime}" SelectedItem="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}" />

我现在正试图获取SelectedItem所绑定的位置,即结果应该是“Name”。然后在代码中我需要用ViewModel属性做一些事情。问题是我不能只对它进行硬编码,因为它是一种需要处理表单上每个控件的通用方法。

谢谢, 理查德

2 个答案:

答案 0 :(得分:16)

我认为应该这样做:

BindingExpression be = BindingOperations.GetBindingExpression((FrameworkElement)yourComboBox, ((DependencyProperty)Button.SelectedItemProperty));
string Name = be.ParentBinding.Path.Path;

To give credit where it's due.

答案 1 :(得分:3)

请查看使用BindingExpression

IE:

var bindingExpression = this.myComboBox.GetBindingExpression(ComboBox.SelectedItem);
string bindingPath = bindingExpression.ParentBinding.Path.Path

我看到你使用的是DXE ComboBox而不是标准 - 期望它来自普通的.NET控件对象,你应该仍然拥有这个功能。