当前位置: 首页 > 知识库问答 >
问题:

单击按钮时从嵌套ListView中删除ListItem

佘飞鸣
2023-03-14

我有一个嵌套的列表框(主对象列表中的对象集合),它需要删除基础项。
删除项时,我可以重置主列表的itemssource,但主列表将有大量项,每次从其基础集合中移除项时,主滚动条也将重置,这使得用户愿意以非常痛苦的方式杀死我。
我的问题:如何找到项的容器,单击了哪个按钮,如何找到项本身,以便杀死@&!$*&#$@(诅咒拟声词)?
以下是列表的XAML示例:

<ListView Name="mainList">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Column 1" />
            <GridViewColumn Header="Column 2" />
            <GridViewColumn Header="Column 3" />
            <GridViewColumn Header="Collection column">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <ListBox ItemsSource="{Binding BindingCollectionProperty}">
                            <ListBox.ItemTemplate>
                                <DataTemplate>
                                    <Grid>
                                        <TextBlock Grid.Column="0" Text="{Binding Item.Property}" />
                                        <TextBlock Grid.Column="1" Text="{Binding Item.AnotherProperty}" />
                                        <Button Content="remove" Grid.Column="2" Click="DeleteClickEvent" />
                                    </Grid>
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

我的DeleteclickEvent(对象发送者,RoutedEventArgs e)应该怎么样?

共有1个答案

梁丘诚
2023-03-14

您可以有一个命令,并将您的项作为参数传递给它,而不是单击处理程序:

<Button ... Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type YOURCUSTOMCONTROL}}, Path=DataContext.YOURCOMMAND}"
            CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}" />

如果希望保留事件处理程序,可以在发件人上使用VisualTreeHelper.GetParent两次。

ListBoxItem item = VisualTreeHelper.GetParent(VisualTreeHelper.GetParent((DependencyObject)sender)) As ListBoxItem;

BindingCollectionProperty.Remove(item);
 类似资料:
  • 我需要从ListView中永久删除一个项目,然后从数据库中删除。我有一个DatabaseHandler.java类,它的delete函数为: 注意,函数deleteContact具有contact类型的contact变量。

  • 我正在用C#WPF做一个项目,它包含在一个客户机管理中,在那里我添加了新的客户机,在一个txt文档中有save,我有一个listview,在那里我可以看到所有添加的客户机,但现在我想实现一个delete按钮,在那里我从listview中选择一个客户机,并可以删除它。如果我现在做的正确,如果有人能帮我…,…谢谢。

  • 我想从java中的表中删除选定的行。该事件应在单击按钮时执行。如果有人帮助我,我会非常感激。。。 例如,有一个名为sub\U table的表,有3列,即sub\U id、sub\U name、class。当我从该表中选择一行并单击“删除”按钮时,应删除该特定行。。

  • 我有一个代码运行良好,除了一件事。当您单击按钮时,会出现一个模态框,并显示两个按钮。当您单击按钮时,它应该删除您单击的用户数据。但这将删除具有最低的用户。但是,如果我删除了模态开箱函数,而simpy只需要放一个就可以了。有办法解决吗? php中的代码:

  • 如何处理ListView中的每个按钮单击?活动课 如何管理ListView中每个项目的按钮单击?我尝试了许多方法…如何解决此问题?请任何人帮帮我...

  • 我有一个这样的列表视图 这很好,因为它会遍历我的 table1 项。该列表包含名称和价格。我的问题是如何通过鼠标点击一个项目来删除项目,然后点击一个说删除的按钮?我看到的问题是,我不知道有多少项目可用,这取决于用户添加了多少个项目。