如何为父ListView生成的每个ListViewItem设置行为?

时间:2018-03-17 00:31:24

标签: c# wpf xaml listviewitem attachedbehaviors

我为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生成的项目?

0 个答案:

没有答案