Как я могу установить поведение для каждого ListViewItem, созданного родительским ListView?

Я определил следующее поведение для ListBoxItems:

using System.Windows.Controls;
using System.Windows.Interactivity;

namespace MyBehavior {
    public partial class ListBoxSelectableBehavior : Behavior<ListBoxItem> {
        protected override void OnAttached( ) => base.OnAttached( );
    }
}

(Очевидно, это еще не все, но поскольку MCVE, а это не имеет отношения к моему вопросу, я просто представляю соответствующая часть. Кроме того, поскольку ListViewItem наследует ListBoxItem напрямую, это справедливо в любом случае.)

Мне нужно знать, как я могу использовать описанное выше поведение и прикрепить его к ListViewItems, сгенерированным следующим образом:

<Window
    x:Class="MCVE.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:MCVE"
    xmlns:lib="clr-namespace:System;assembly=mscorlib"
    mc:Ignorable="d" Title="MainWindow" Height="450" Width="800">
    <Window.Resources>
        <x:Array x:Key="ListViewSource" Type="{x:Type lib:String}">
            <lib:String>Foo</lib:String>
            <lib:String>Bar</lib:String>
            <lib:String>Baz</lib:String>
        </x:Array>
    </Window.Resources>
    <ListView ItemsSource="{StaticResource ListViewSource}">
        <ListView.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding}" />
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</Window>

Я знаю, что для привязки поведения к элементам вам нужно импортировать пространство имен System.Windows.Interactivity и определить его в XAML, и XAML будет ...

<myFoo:Bar>
    <i:Interaction.Behaviors>
        <!-- Behaviors Go Here -->
    </i:Interaction.Behaviors>
</myFoo:Bar>

Чего я не знаю, так это куда бы я положил это, чтобы это повлияло на ListView сгенерированные элементы.

Итак ... как мне заставить определенное мной поведение влиять на мои ListView сгенерированные элементы?


person Will    schedule 17.03.2018    source источник
comment
ListView.ItemContainerStyle   -  person Dave M    schedule 17.03.2018
comment
@DaveM Так ... что? Я просто шлепаю XAML прямо в стиле?   -  person Will    schedule 17.03.2018
comment
Либо: stackoverflow.com/questions/1647815, либо вместо этого реализуйте свое поведение как AttachedProperty (одна из причин, по которой я предпочитаю реализовать «поведение» как AttachedProperties)   -  person Dave M    schedule 17.03.2018