#wpf #templates #listbox
#wpf #шаблоны #список
Вопрос:
Я хочу представить коллекцию разных, но связанных типов данных и дать пользователю возможность редактировать их. Я не могу представить их в виде сетки, потому что каждый тип отличается и, следовательно, не подходит для макета сетки.
например
Type1
— свойства являются From, To, Threshold, Enabled
Type2
— свойства являются From, ExecutedPercent, Benchmark, Enabled
и т. д
Эти типы связаны, но отличаются, поэтому я подумываю о создании панели инструментов с типами вверху. Когда пользователь выбирает Type1, я генерирую пользовательский интерфейс, используя пользовательский ItemTemplate в ListBox, то же самое для Type2. Поэтому я заменяю ItemTemplate во время выполнения и меняю источник данных.
Вопросы:
1. Звучит ли это как разумный подход?
2. Имеет ли смысл использовать шаблон элемента ListBox?
3. Есть ли какие-либо другие элементы управления, о которых мне следует подумать при создании шаблонов здесь? Мне кажется, что ListBox является идеальным кандидатом для любого источника списка, когда необходимо отобразить все элементы.
Заранее спасибо
Ответ №1:
Для обработки различных типов элементов вы можете использовать ItemTemplateSelector, который будет более понятным решением WPF.
Если вам не нужен выбранный элемент в списке, а нужно только отображать элементы, тогда вам следует использовать ItemsControl
вместо ListBox
Ответ №2:
вы можете использовать datatemplateselecter, поэтому вам не нужно устанавливать itemtemplate при переключении типа, просто измените источник данных.