zoukankan      html  css  js  c++  java
  • WPF ListView点击删除某一行并获取绑定数据

    最近在开发WPF程序时遇到一个问题,在gridview中希望实现在每一行最后添加一个删除的按钮,但是发现点击每行的button时只会触发button的点击事件,并没有选中这一行,此时调用list.SelectedItem时无法得到对应的绑定数据。

    UI.xaml
    <ListView x:Name="list" Height="494" Width="1121" FontSize="16" >
    <ListView.View>
    <GridView x:Name="grideView" >
    <GridViewColumn Header="产 品 名 称" Width="Auto" DisplayMemberBinding="{Binding Path=productName}"/>
    <GridViewColumn Header="产 品 类 型" Width="Auto" DisplayMemberBinding="{Binding Path=productType}"/>
    <GridViewColumn Header="产 品 大 类" Width="Auto" DisplayMemberBinding="{Binding Path=productCategory}" />
    <GridViewColumn Header="产 品 规 格" Width="Auto" DisplayMemberBinding="{Binding Path=productSpec}"/>
    <GridViewColumn Header="产 品 数 量" Width="Auto" DisplayMemberBinding="{Binding Path=number}"/>
    <GridViewColumn Header="价 格" Width="Auto" DisplayMemberBinding="{Binding Path=productMoney}"/>
    <GridViewColumn Header="操 作" Width="Auto" > <GridViewColumn.CellTemplate>
    <DataTemplate>
    <Button x:Name="BtnDelete" Background="{x:Null}" BorderBrush="{x:Null}" Click="BtnDelete_Click" >
    <Image Source="/images/error.png" />
    </Button>
    </DataTemplate> </GridViewColumn.CellTemplate>
    </ListView.View>
    </ListView>
     
    UI.cs
    /**
    * 删除按钮监听事件
    * */
    private void BtnDelete_Click(object sender, RoutedEventArgs e)
    {
    //设置girid的选中元素为Button所在行的元素
    list.SelectedItem = ((Button)sender).DataContext;
    //在数据集合中删除此元素
    mItemsSource.RemoveAt(list.SelectedIndex);
    list.Items.Refresh();//刷新listview
    }
    效果图

  • 相关阅读:
    The Triangle_DP
    LITTLE SHOP OF FLOWERS_DP
    K Best(最大化平均数)_二分搜索
    Number Game_状态压缩
    Stockbroker Grapevine_Floyd
    A very hard Aoshu problem
    AOE 网络
    AOV网
    最小生成树
    [POJ] 1562 Oil Deposits (DFS)
  • 原文地址:https://www.cnblogs.com/yelanggu/p/10463663.html
Copyright © 2011-2022 走看看