Как эффективно использовать наследование в DataBinding в WPF? - PullRequest
2 голосов
/ 17 марта 2011

У меня есть очень простая объектная модель с базовым классом Person и двумя производными классами под названием Girl и Guy.

В моем пользовательском интерфейсе у меня есть две радиокнопки, и я установил в тексте данных моей формы свойство типаPerson.

Я бы хотел иметь возможность привязать свои радиокнопки, чтобы "вернуть" экземпляр Guy, когда установлен переключатель "Guy", и "вернуть" экземпляр Girl, когда Girl isпроверено.Конечно, я хочу, чтобы привязка была в TwoWay ...

Мне не удается реализовать этот вид привязки данных, поэтому любые советы приветствуются.

Спасибо за вашу помощь!

Ответы [ 2 ]

1 голос
/ 17 марта 2011

Возможно, вы можете использовать IValueConverter для создания привязки и изменить тип мухи.

Однако я бы рекомендовал делать это в ViewModel. Проблема попытки сделать это полностью в привязке состоит в том, что вы в конечном итоге создадите новые экземпляры Guy / Girl, когда пользователь меняет радиоблок, что приведет к потере значений, хранящихся в пользовательском интерфейсе, каждый раз, когда пользователь изменяет этот параметр. опция ... Обрабатывая это в ViewModel, вы можете легко кэшировать их или нет по своему усмотрению - в основном давая вам контроль над временем жизни сгенерированного объекта.

0 голосов
/ 17 марта 2011

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

wpf-связывание радиокнопок - статья в блоге

английская версия

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