Я хотел бы написать производный пользовательский элемент ItemsControl. Это частично из-за необходимости, а частично как учебное упражнение - пожалуйста, не предлагайте I Style, DataTemplate, ControlTemplate a ListBox и т. Д. Т.е. пожалуйста, не подвергайте сомнению необходимость - просто примите ее подлинную.
Я троллил в Интернете и нашел много полезной информации ItemControl, но нет четких примеров.
Когда я создаю новый пользовательский элемент управления в VS, я получаю практически пустой код и Generic.xaml с блоком <Style>
, где можно установить ControlTemplates, DataTemplates, Presenters и т. Д. С помощью <Setter Property="Template">
и т. Д. Но каков минимальный xaml / код нужно здесь, чтобы получить элемент управления, который будет привязан к ObservableCollection для ItemsSoruce для отображения в виде списка? Другими словами: какова каноническая форма пользовательского элемента управления, полученного из ItemsControl?
Нужен ли ItemsPresenter? Нужно ли указывать панель стека в ControlTemplate? Нужно ли устанавливать TargetType на <Setter Property="ItemTemplate">
? и т.д.
Подача ложки предпочтительнее, например, говоря: это просто, и мне просто нужно интегрировать DataTemplate в векторное пространство контейнеров элементов управления по отношению к ведущему панели yada yada ... не очень помогает.
Дополнительная информация: Элемент управления ориентирован только на отображение, т. Е. Отсутствует концепция выбранного элемента и т. Д.
Заранее спасибо!
Generic.xaml по умолчанию (какой минимум здесь добавить?):
<Style TargetType="{x:Type local:MyItemsControlDerivedClass}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:MyItemsControlDerivedClass}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>