如何在wpf中使用gridview获取列表中的选定行 [英] How to Get selected row in list with gridview in wpf

查看:283
本文介绍了如何在wpf中使用gridview获取列表中的选定行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

HI全部,



我有网格列表,它有删除列,我想要选中的行将被删除,为此如何获取选择行可以你指导我









HI All ,

I have list with grid , It having Delete column ,I want to selected row will be deleted , for that how to get select row can u guide me




<ListView Name="lstSellingCurrency" SelectedItem="{Binding Path=Sno}" ItemsSource="{Binding}">
    <ListView.View>
        <GridView>

            <GridViewColumn Header="S#" DisplayMemberBinding="{Binding Sno}" Width="30"/>
            <GridViewColumn Header="Enter Date" DisplayMemberBinding="{Binding EnterDate}" Width="78"/>
            <GridViewColumn Header="Record Date" DisplayMemberBinding="{Binding RecordDate}" Width="70"/>
            <GridViewColumn Header="Recieved Usd $" DisplayMemberBinding="{Binding PaidUsd}" Width="90"/>
            <GridViewColumn Header="Paid" DisplayMemberBinding="{Binding Path=PaidRate}" Width="60"/>
            <GridViewColumn Header="Rate" DisplayMemberBinding="{Binding Recievedrupees}" Width="70">

            </GridViewColumn>
            <GridViewColumn Header="Delete" Width="45">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <Button Click="Button_Click_4">
                            <StackPanel>
                                <Image Source="G:\\WpfApplication11\\WpfApplication11\\Images\\images.jpg" Height="35"  />

                            </StackPanel>
                        </Button>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>

    </ListView.View>

</ListView>

推荐答案

DisplayMemberBinding = {Binding PaidUsd} 宽度 = 90 / >
< GridViewColumn 标题 = 付费 DisplayMemberBinding = {Binding Path = PaidRate} 宽度 = 60 / >
< GridViewColumn 标题 = 评分 DisplayMemberBinding = {Binding Recievedrupees} 宽度 = 70 >

< / GridViewColumn >
< GridViewColumn 标题 = 删除 宽度 = 45 >
< GridViewColumn.CellTemplate >
< DataTemplate < span class =code-keyword>>
< 按钮 点击 = Button_Click_4 >
< StackPanel >
< 图像 来源 = G:\\WpfApplication11 \\WpfApplication11 \\ Images \ images.jpg 高度 = 35 < span class =code-keyword> / >

< / StackPanel >
< /按钮 >
< / DataTemplate >
< / GridViewColumn.CellTemplate >
< / GridViewColumn >
< / GridView >

< / ListView.View >

< / ListView >
" DisplayMemberBinding="{Binding PaidUsd}" Width="90"/> <GridViewColumn Header="Paid" DisplayMemberBinding="{Binding Path=PaidRate}" Width="60"/> <GridViewColumn Header="Rate" DisplayMemberBinding="{Binding Recievedrupees}" Width="70"> </GridViewColumn> <GridViewColumn Header="Delete" Width="45"> <GridViewColumn.CellTemplate> <DataTemplate> <Button Click="Button_Click_4"> <StackPanel> <Image Source="G:\\WpfApplication11\\WpfApplication11\\Images\\images.jpg" Height="35" /> </StackPanel> </Button> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView>


您好,



让我们说你有一个ViewModel如下所示:

Hello,

Lets say you have a ViewModel that look like this:
public class ViewModel : NotifyPropertyChanged
{
    public string Header { get; set; }
    private bool _isSelected = false;
    public bool IsSelected { get { return _isSelected; } set { _isSelected = value; NotifyOfPropertyChanged(() => IsSelected); } }
}



并将其放在列表视图中:


And put it in list view:

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Button Click="Button_Click" Content="CheckSelection" />
    <ListView ItemsSource="{Binding}" Grid.Row="1">
        <ListView.Resources>
            <Style TargetType="ListViewItem" >
                <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
            </Style>
        </ListView.Resources>
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Header" DisplayMemberBinding="{Binding Header}" />
            </GridView>
        </ListView.View>
    </ListView>
        
</Grid>



然后您可以返回选择使用视图模型的IsSelected属性编辑项目。


You can then return selected item using view model's IsSelected property.

private void Button_Click(object sender, RoutedEventArgs e)
{
    int ctx = 0;
    foreach (var vm in ItemList)
        if (vm.IsSelected)
            ctx++;
    MessageBox.Show(ctx.ToString() + " Selected.");
}





问候

Joseph Leung



Regards
Joseph Leung


这篇关于如何在wpf中使用gridview获取列表中的选定行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆