Я определил следующее поведение для ListBoxItem
s:
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
напрямую, это справедливо в любом случае.)
Мне нужно знать, как я могу использовать описанное выше поведение и прикрепить его к ListViewItem
s, сгенерированным следующим образом:
<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
сгенерированные элементы?