Во-первых, вам гораздо лучше делать это в XAML. Это делает вещи намного понятнее и короче. Я собираюсь ответить и на XAML, и на коде, чтобы продемонстрировать это.
Самый простой способ - применить стиль к ListViewItem и использовать Setter для применения привязки. На ListViewItem DataContext будет вашим связанным элементом (в данном случае TrinityEventData).
Предполагая, что у вас есть ListView в XAML:
<ListView x:Name="lstview_Unack">
<ListView.Resources>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}"/>
</Style>
</ListView.Resources>
</ListView>
В коде вы должны создать стиль, сеттер и привязку вручную:
Style listViewItemStyle = new Style { TargetType = typeof(ListViewItem) };
listViewItemStyle.Setters.Add(new Setter
{
Property = ListViewItem.IsSelectedProperty,
Value = new Binding { Path = new PropertyPath("IsSelected") }
});
lstview_Unack.Resources.Add(typeof(ListViewItem), listViewItemStyle);
Однако существуют проблемы с этим и виртуализацией. Если ваши ListViewItems будут виртуализированы, вы можете отменить выбор элементов в ListView, но привязка не сработает, поскольку ваш ListViewItem не существует.