Разный шаблон элемента для каждого элемента в списке WPF?

StackOverflow https://stackoverflow.com/questions/152664

  •  02-07-2019
  •  | 
  •  

Вопрос

У меня есть много элементов внутри элемента управления списком.Я хочу, чтобы у каждого элемента был свой шаблон элемента в зависимости от типа элемента.Итак, первый элемент в списке имеет тип ObjectA, и я хочу, чтобы он отображался с помощью ItemTemplateA.Второй элемент имеет тип ObjectB, поэтому я хочу, чтобы он имел ItemTemplateB для рендеринга.На данный момент я могу использовать только настройку ItemTemplate, чтобы определить один шаблон для всех.Есть ли способ добиться этого?

Это было полезно?

Решение

тот ItemTemplateSelector будет работать, но я думаю, что проще создать несколько DataTemplateв разделе ресурсов, а затем просто дайте каждому DataType.Это автоматически затем будет использовать это DataTemplate если генератор элементов обнаруживает соответствующий тип данных?

<DataTemplate DataType={x:Type local:ObjectA}>
   ...
</DataTemplate>

Также убедитесь, что у вас нет x:Key набор для DataTemplate.
Подробнее об этом подходе здесь

Другие советы

Взгляните на Выбор шаблона элемента свойство вашего элемента управления списком.Вы можете указать его на собственный TemplateSelector и решить, какой шаблон использовать в коде.

Вот сообщение в блоге, описывающее TemplateSelectors:

http://blogs.interknowlogy.com/johnbowen/archive/2007/06/21/20463.aspx

Редактировать:Вот лучший пост:

http://blog.paranoidferret.com/index.php/2008/07/16/wpf-tutorial-how-to-use-a-datatemplateselector/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top