Я унаследовал проект, который использует RadioButtonList
, который наследует от ListBox
. Он был снят с Интернета (в настоящее время он не может найти ссылку) и содержит RadioButtonList.cs(который содержит шесть свойств зависимостей) и RadioButtonList.xaml(это только стили и шаблоны управления).
Этот элемент управления используется в более чем ста местах. Это вызывает проблемы, потому что это не полный и профессиональный контроль. Такие проблемы, как проблемы с фокусом, клавиатура и т.д. (См. Комментарии.)
После долгих исследований в разное время за последние пару лет кажется, что этот контроль действительно не нужен. Все, что нужно, - установить свойство GroupName
в группе радиокнопки. И единственная причина, по которой используется элемент управления RadioButtonList
, - это помочь с привязкой данных к списку опций через наследуемый ListBox
.
1) Действительно ли этот контроль необходим? Есть ли лучший способ?
2) Есть ли профессиональный контроль, open-source или иное, что позволит мне получить преимущества привязки данных без головных болей? (Мы используем Infragistics и DevExpress, но я не знаком со всеми элементами управления, предлагаемыми этими наборами.)
Мои ответы
1a) Действительно ли этот контроль необходим?
- Если вам нужен только один список переключателей, тогда этот элемент управления не нужен.
- Если ваше приложение использует множество списков переключателей, тогда да, этот элемент управления необходим.
- Если вы используете список переключателей в разных приложениях, то да, возможно, этот элемент управления необходим.
1b) Есть ли лучший способ?
- Я говорю, что вывод из
ListBox
,ItemsControl
или что-то другое, создавая стили и шаблоны, - единственный способ создать этот элемент управления; поэтому нет лучшего способа.
2) Есть ли профессиональный контроль...
- Определенно,
ListBoxEdit
сRadioListBoxEditStyleSettings
.
Комментарии относительно ответов
Все ответы указывают, что создание элемента управления RadioButtonList
не требуется. Тем не менее, если вам нужно больше, чем несколько списков радиокнопок, к моменту создания стилей и шаблонов управления и, возможно, шаблона данных вы получите коллекцию артефактов кода, которую можно назвать радиокнопочным списком, контроль. Поэтому, на мой взгляд, необходим a RadioButtonList
.
Кроме того, мое понимание - это RadioButtonList
, было сброшено в раннем WPF CTP. Что я могу понять из-за ограниченной потребности в таком контроле, который можно легко создать.
Комментарий относительно принятого ответа
2) Есть ли профессиональный контроль...
- Определенно,
ListBoxEdit
сRadioListBoxEditStyleSettings
.
Последний комментарий к Mike Strobel Отвечать
RadioButtonList
, который у меня есть, является конечным результатом его ответа. Хотя я хорош в создании пользовательских элементов управления, я предпочитаю, чтобы сторонние производители компонентов, такие как Infragistics и DevExpress, создавали и поддерживали базовый элемент управления, подобный этому.