如何使用ControlTemplate设置ListViewItem的样式?

问题描述 投票:0回答:1

我是 WPF 新手,绑定和样式的整个世界非常令人困惑。

我已经为 ListViewItem 创建了默认 ControlTemplate 的副本:

<Window.Resources>
    <ControlTemplate x:Key="ListViewItemControlTemplate1" TargetType="{x:Type ListViewItem}">
        ...
    </ControlTemplate>
</Window.Resources>

然后我的 ListView 中有列,例如:

<ListView x:Name="lstFiles">
    <ListView.View>
        <GridView>
            <GridViewColumn x:Name="clmName" Header="Name" DisplayMemberBinding="{Binding Name}" />
        </GridView>
    </ListView.View>
</ListView>

如果我在设计器中添加新项目,我可以轻松应用该 ControlTemplate:

<ListViewItem Content="ListViewItem1" Template="{DynamicResource ListViewItemControlTemplate1}"/>

但是,当使用

lstFiles.ItemsSource
将项目绑定到 ListView 时,如何使用该模板?

wpf listview binding controltemplate
1个回答
-1
投票

我认为您想覆盖列表视图项的样式。来自:如何覆盖ListViewItem样式?

<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem" BasedOn="{StaticResource MaterialDesignListBoxItem}">
    <Style.Resources>
        <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ListBox.xaml" />
    </Style.Resources>
    <EventSetter Event="PreviewMouseLeftButtonDown"
                 Handler="ListViewItem_PreviewMouseLeftButtonDown" />
</Style>

© www.soinside.com 2019 - 2024. All rights reserved.