Как сказал Snowbear, предоставьте больше информации ... Из ваших вопросов я вижу ...
Мой первый вопрос: как мне перейти от списка контактов с ролями к множеству кнопок ToggleButton?на экране.
Что вы подразумеваете под GO ?Вы спрашиваете, как Contacts
или Contact.Roles
преобразуются в ToggleButtons?Тогда это то, что делает ваш ItemTemplate
.Если вы спрашиваете, хотите ли вы, чтобы какое-либо свойство или данные объекта Contact
удерживались кнопкой переключения, то вы уже использовали Binding
в вашем ItemTemplate
.
<ToggleButton Content="{Binding}" Tag="{Binding Roles}">
</ToggleButton>
В приведенном выше примереTag
, являющееся одним из невизуальных свойств FrameworkElement
s в WPF, связано со списком Roles
из соответствующего объекта Contact
.
Второй вопрос, который у меня возникает, - если я нажимаю одну кнопку ToggleButton, необходимо проверить и все остальные кнопки, имеющие тот же контакт .
Вы говорите, что в вашем списке Contacts
какой-то Contact
объект добавляется несколько раз в список?Если это так, то это плохой дизайн и может привести к ошибкам при использовании ItemsSource
.Если нет, то это ваше утверждение all other buttons that have the **same contact**
сбивает с толку.Вы имеете в виду, что у вас есть Контакты, которые могут повторяться, но это не один и тот же объект по ссылке .Возможно, они имеют какое-то идентифицирующее значение, например, они имеют одинаковые Contact.Name
или Contact.ID
и т. Д.
Если какое-то идентифицирующее значение контакта одинаково для разных контактных объектов, вам придется разумно использовать SelectedValue
обязательный.
Если я нажимаю другую тумблер, принадлежащий другому контакту, все отмеченные кнопки должны быть сняты, а кнопки, принадлежащие новому контакту, должны быть проверены.
Снова этовозможно, если вы решите, что вы на самом деле пытаетесь сделать, то есть добавляете ли вы один и тот же объект контакта несколько раз или у вас есть разные Contact
объекты, имеющие value
общего.
Нужно лиПользовательский элемент управления, который наследуется от ItemsControl или это может быть сделано с помощью шаблонов и стилей?
в WPF, НИЧЕГО можно достичь с помощью общих шаблонов и стилей.Они определенно устраняют необходимость создания настраиваемого элемента управления для различных визуально похожих элементов управления.
НО, если у вашего элемента управления есть поведение или функциональность, которые вам нужно выполнять точно так же в нескольких местах, и вы хотите, чтобы он был запечатан и ограничивал себя при выполнении этой конкретной функции, тогда создание пользовательского элемента управления имеет смысл.
Поэтому, пожалуйста, перефразируйте свой вопрос и предоставьте более четкие данные.