C# wpf listview 如何得到按钮所在行?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# wpf listview 如何得到按钮所在行?相关的知识,希望对你有一定的参考价值。

listview 有两列.一列是内容.一列是删除按钮.
点删除按钮时就删除这个按钮所在的行.

C# code

<ListView> <ListView.ItemTemplate> <DataTemplate> <WrapPanel> <TextBlock Text="Binding Path=w2" MinWidth="180" /> <Button Content="删除" MinWidth="80" Click="Button_Click" /> </WrapPanel> </DataTemplate> </ListView.ItemTemplate> </ListView>

效果如:
a 删除
b 删除
c 删除
现在问题是删除按钮是想直接点按钮就删除.这一行是没有选中的.
所以listView1.SelectedItem是空.

如何写这个Button_Click?
或者能把把该项的数据放进去Button.Tag也可以.感谢
问题已解决.送分了

参考技术A 按照你定义的结构,你可以向上找出其ItemControl,然后用可以获取到对应的Index,之后就随你怎么操作了 参考技术B 接分! :-)本回答被提问者采纳 参考技术C 好人平安~求分~求分啦~~~ o(∩_∩)o 哈哈~

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。

以上是关于C# wpf listview 如何得到按钮所在行?的主要内容,如果未能解决你的问题,请参考以下文章

C# WPF Listview 如何设置某一行的颜色

c# listview 如何改变某一行的位置

C# wpf listview 如何动态添加 高手回答下

C#如何让listview可编辑 winform

如何得到listview的总列数与总行数

如何在 C# WPF 中从 ListView/XML 中完全删除一个项目?