C# Wpf 如何使用其中的按钮更改 Listviewitem 的高度?
Posted
技术标签:
【中文标题】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。以上是关于C# Wpf 如何使用其中的按钮更改 Listviewitem 的高度?的主要内容,如果未能解决你的问题,请参考以下文章