我为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
继承{{1}直接,它对任何一种情况都有效。)
我需要知道如何处理上面定义的行为并将其附加到由以下内容生成的ListBoxItem
:
ListViewItem
我知道要将行为附加到元素,您需要导入<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>
命名空间,并在XAML中定义它,而XAML将是......
System.Windows.Interactivity
我不知道的是,我认为这会影响<myFoo:Bar>
<i:Interaction.Behaviors>
<!-- Behaviors Go Here -->
</i:Interaction.Behaviors>
</myFoo:Bar>
生成的项目。
那么......如何让我定义的行为影响我的ListView
生成的项目?