求助WPF ListViewItem样式问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助WPF ListViewItem样式问题相关的知识,希望对你有一定的参考价值。

参考技术A 请详细说明一下你的问题

C# Wpf 如何使用其中的按钮更改 Listviewitem 的高度?

【中文标题】C# Wpf 如何使用其中的按钮更改 Listviewitem 的高度?【英文标题】:C# Wpf How to Change Listviewitem's Height Using a Button in it? 【发布时间】:2014-12-09 23:11:43 【问题描述】:

我的列表视图项目中包含 1 个按钮。 Listview 项的默认高度为 60。

当我单击 listview 项目的按钮时,该行(包含单击的按钮)的高度应更改为 100。当我再次单击该按钮时,行的高度应更改回 60。

我真的不知道如何实现这个。

当我单击 Row1 的详细信息按钮时,Row1 的高度应更改为 100。如果我再次单击它,它的高度应更改回 60。

我正在向这样的列表视图项目添加按钮:

                 <GridViewColumn >
                    <GridViewColumn.CellTemplate>
                        <DataTemplate>
                            <Grid>                                  
                               <ButtonName="DetailsButton"Content="Details"FontWeight="Bold"  HorizontalAlignment="Left" Margin="520,35,0,0" VerticalAlignment="Top" Width="75" Height="25">
                               </Button>
                            </Grid>
                        </DataTemplate>
                    </GridViewColumn.CellTemplate>
                </GridViewColumn>

【问题讨论】:

应该使用ToggleButton,然后你可以在togglebutton的Checked状态改变时切换行高(通过绑定) 如何填充列表视图?您是使用数据绑定(将 ListView 的 ItemsSource 绑定到数据源),还是在 for 循环中一一添加行? 我正在使用数据绑定来填充 Listview。 【参考方案1】:

你可以使用 DataTemplate Triggers 来达到同样的效果

样本

<GridViewColumn>
    <GridViewColumn.CellTemplate>
        <DataTemplate>
            <Grid>
                <ToggleButton Name="DetailsButton"
                              Content="Details"
                              FontWeight="Bold"
                              HorizontalAlignment="Left"
                              Margin="520,35,0,0"
                              VerticalAlignment="Top"
                              Width="75"
                              Height="25">
                </ToggleButton>
            </Grid>
            <DataTemplate.Triggers>
                <Trigger SourceName="DetailsButton"
                         Property="IsChecked"
                         Value="true">
                    <Setter Property="Height"
                            Value="100" />
                </Trigger>
            </DataTemplate.Triggers>
        </DataTemplate>
    </GridViewColumn.CellTemplate>
</GridViewColumn>

我已将Button 更改为ToggleButton,因此它可以有两种状态并且还可以显示清晰的指示。

在触发器中,当检查按钮时,我已将高度设置为100。一旦条件变为假,它将被恢复

看看这是不是你要找的。​​p>

【讨论】:

比我的方法更好,纯 XAML。

以上是关于求助WPF ListViewItem样式问题的主要内容,如果未能解决你的问题,请参考以下文章

WPF:防止在 Shift + 箭头上选择 ListViewItem

请问下WPF的slider样式要如何才能改成下面这样。。。求助下。。。还是说使用其他控件才能做出这种。。。

WPF ListViewItem IsSelected 仅在视图中滚动后影响

WPF动态添加带有detals的ListViewItem

C# Wpf 如何使用其中的按钮更改 Listviewitem 的高度?

WPF:改变ListBoxItem和ListViewItem的颜色