Также, если вы хотите сделать все это только с XAML, вы можете просто использовать ListBox вместо ItemsControl и определить стиль для ListBoxItem:
<ListBox ItemsSource="{Binding Elements.ListViewModels}">
<ListBox.Resources>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<StackPanel>
<TextBlock>Some Content Here</TextBlock>
<ContentPresenter Content="{TemplateBinding Content}" />
<Button>Edit</Button>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
Обратите внимание, что, поскольку я использую ListBox, контейнером является ListBoxItem.(Обычно контейнер для элемента управления списком WPF по умолчанию всегда называется Item), поэтому мы создаем стиль для ListBoxItem:
<Style TargetType="ListBoxItem">
Затем создаем новый ControlTemplate для ListBoxItem.Обратите внимание, что ContentPresenter не используется, как это всегда появляется в статьях и руководствах, вам необходимо привязать шаблон к свойству Content объекта ListBoxItem, чтобы он отображал содержимое этого элемента.
<ContentPresenter Content="{TemplateBinding Content}" />
Я простобыла такая же проблема и исправлена таким образом.Мне не нужны некоторые функции ListBox (выбор элементов), и с помощью этой техники выбор элементов больше не работает.