Ответ 1
Я думаю, что это должно сделать это:
BindingExpression be = BindingOperations.GetBindingExpression((FrameworkElement)yourComboBox, ((DependencyProperty)Button.SelectedItemProperty));
string Name = be.ParentBinding.Path.Path;
Я пытаюсь найти способ получить свойство, которому привязан элемент управления (в С#).
Если у меня есть следующее:
<dxe:ComboBoxEdit DisplayMember="Name" ItemsSource="{Binding Path=NameOptions, Mode=OneTime}" SelectedItem="{Binding Path=Name, UpdateSourceTrigger=PropertyChanged}" />
Теперь я пытаюсь получить местоположение, к которому привязан SelectedItem, т.е. результат должен быть "Name". Затем в коде мне нужно сделать кое-что с этим свойством ViewModel. Проблема в том, что я не могу просто жестко кодировать это, поскольку это общий метод, который должен работать с каждым элементом управления в форме.
Спасибо, Ричард
Я думаю, что это должно сделать это:
BindingExpression be = BindingOperations.GetBindingExpression((FrameworkElement)yourComboBox, ((DependencyProperty)Button.SelectedItemProperty));
string Name = be.ParentBinding.Path.Path;
Посмотрите на использование BindingExpression
IE:
var bindingExpression = this.myComboBox.GetBindingExpression(ComboBox.SelectedItem);
string bindingPath = bindingExpression.ParentBinding.Path.Path
Я вижу, что вы используете DXE ComboBox вместо стандартного - ожидая, что он происходит из обычного объекта управления .NET, вы все равно должны иметь эту функциональность.