WPF: получить свойство, с которым связан элемент управления в коде - PullRequest
12 голосов
/ 04 мая 2010

Я пытаюсь найти способ получить свойство, к которому привязан элемент управления (в c #).

Если у меня есть следующее:

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

Я сейчас пытаюсь получить местоположение, к которому привязан SelectedItem, то есть результат должен быть «Имя». Затем в коде мне нужно сделать некоторые вещи с этим свойством ViewModel. Проблема в том, что я не могу просто жестко закодировать это, поскольку это универсальный метод, который должен работать с каждым элементом управления в форме.

Спасибо, Ричард

Ответы [ 2 ]

16 голосов
/ 04 мая 2010

Я думаю, что это должно сделать это:

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

Чтобы дать кредит, где он должен.

3 голосов
/ 04 мая 2010

Ознакомьтесь с использованием BindingExpression

IE:

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

Я вижу, что вы используете DXE ComboBox вместо стандартного - ожидая, что он получен из обычного объекта управления .NET, вы все равно должны иметь эту функциональность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...