如何更改单个Listview';s项ItemTemplate

本文关键字:ItemTemplate 何更改 单个 Listview | 更新日期: 2023-09-27 18:13:51

XAML:

<DataTemplate x:key="AwesomeDataTemplate" >
  (Awesome stuff here...)
</DataTemplate>
<DataTemplate x:key="GodLikeDataTemplate" >
  (Something better here...)
</DataTemplate>

我有一个Listview,里面有一些ListViewItem。默认情况下,ListViewItemTemplateAwesomeDataTemplate。当我将鼠标悬停到ListViewItem时,是否可以将悬停的ListViewItem的项目模板更改为GodLikeDataTemplate

如何更改单个Listview';s项ItemTemplate

例如,您可以这样做。使用触发器并更改ContentTemplate属性的DataTemplate。

<Window x:Class="ListViewSample.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:ListViewSample"
    mc:Ignorable="d"
    Title="MainWindow" Height="350" Width="525">
<Window.Resources>
    <Style TargetType="ListViewItem">
        <Setter Property="ContentTemplate" >
            <Setter.Value>
                <DataTemplate>
                    <TextBlock Text="{Binding}" Foreground="Blue"/>
                </DataTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="ContentTemplate">
                    <Setter.Value>
                        <DataTemplate>
                            <TextBlock Text="{Binding}" Foreground="Red"/>
                        </DataTemplate>
                    </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
</Window.Resources>
<ListView>
    <ListViewItem>123</ListViewItem>
</ListView>