c# - 在WPF中设置listview ItemContainerStyle

标签 c# wpf listview mvvm

我有一个 ListView,其中行交替颜色:

<Grid>
    <Grid.Resources>
        <Style x:Key="RowColorStyle" TargetType="ListViewItem">
            <Setter Property="IsSelected" Value="{Binding IsSelected}"/>
            <Style.Triggers>
                <Trigger Property="ItemsControl.AlternationIndex"  Value="0">
                    <Setter Property="Background" Value="LightBlue" />
                </Trigger>
                <Trigger Property="ItemsControl.AlternationIndex"  Value="1">
                    <Setter Property="Background" Value="LightGray" />
                </Trigger>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Background" Value="Orange"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Grid.Resources>

    <ListView ItemContainerStyle="{StaticResource alternatingStyle}" AlternationCount="2">
    </ListView>

</Grid>

现在我已将 listview ItemContainerStyle 设置如下:

<ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
        <Setter Property="IsSelected" Value="{Binding IsSelected}"/>
        <EventSetter Event="PreviewMouseLeftButtonDown" Handler="lvi_MouseDown" />
        <EventSetter Event="PreviewMouseMove"  Handler="lvi_MouseMove" />
    </Style>
</ListView.ItemContainerStyle>

现在的问题是 listview 多次定义 ItemContainerStyle 主体,因此我尝试在最后定义的 内移动 ItemContainerStyle="{StaticResourcealternateStyle}" >ItemContainerStyle 部分刚刚实现,但我不知道该怎么做。

最佳答案

我不确定您在问什么,但您可以使用 BasedOn 属性将 Style 建立在另一个样式的基础上:

<ListView AlternationCount="2">
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem" BasedOn="{StaticResource alternatingStyle}">
            <Setter Property="IsSelected" Value="{Binding IsSelected}"/>
            <EventSetter Event="PreviewMouseLeftButtonDown" Handler="lvi_MouseDown" />
            <EventSetter Event="PreviewMouseMove"  Handler="lvi_MouseMove" />
        </Style>
    </ListView.ItemContainerStyle>
</ListView>

关于c# - 在WPF中设置listview ItemContainerStyle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44888051/

相关文章:

c# - 在 C# 中解析 JSON 的最有效方法

c# - 如何使用 WPF 数据绑定(bind)来编辑多个项目的公共(public)字段

java - 在 ListView 中获取搜索数据的问题

c# - MIDI 音序器以微秒分辨率触发事件

c# - 将 boolean 数组转换为十六进制数

c# - 在 ScrollViewer.ComputedVerticalScrollBarVisibility 更改时调整 ListView 列的大小

c# - 如何通过元素选择移动 Canvas ?

c# - 禁用 ListView 数据模板中的按钮

c# - GroupJoin、SelectMany、GroupBy 和 Sum

c# - WPF 的 C# 代码中的 XPath