WPF - ListView - GridView - 从.xaml.cs文件访问CommandParameter

时间:2013-01-31 08:58:23

标签: c# .net wpf listview gridview

我使用listview包含gridview来绑定数据。 我如何使用我的.cs文件中的按钮上的CommandParameter。该按钮出现在我的gridview中。另外,如何在按钮点击事件中通过我的.cs文件中的id识别每一行。

我的代码:

<ListView Name="listUsers" SelectionMode="Single" Height="200" SelectionChanged="listUsers_SelectionChanged">
    <ListBoxItem></ListBoxItem>
    <ListView.View>
        <GridView AllowsColumnReorder="true">
            <GridViewColumn Header="User Id" DisplayMemberBinding="{ Binding Path=UserId }"></GridViewColumn>
            <GridViewColumn Header="Name" DisplayMemberBinding="{ Binding Path=UserName }"></GridViewColumn>
            <GridViewColumn Header="Email Id" DisplayMemberBinding="{ Binding Path=Email }"></GridViewColumn>
            <GridViewColumn Header="Mobile" DisplayMemberBinding="{ Binding Path=Mobile }"></GridViewColumn>
            <GridViewColumn Header="Update" >
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <Button Height="23" Name="button1" CommandParameter="{ Binding Path=UserId }" Click="button1_Click" Width="75">Button</Button>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

1 个答案:

答案 0 :(得分:0)

您需要创建CommandICommand的子类)并将按钮命令属性设置为它。

您正在使用点击事件,因此我怀疑在处理事件时命令参数是否可用。

如果你只对这个UserId字段感兴趣而不是对Command的其他功能感兴趣(比如CanExecute等),你可以使用按钮的Tag属性,因为你可以通过后面的代码得到它。

 <Button Height="23" Name="button1" Tag="{Binding Path=UserId }" Click="button1_Click" Width="75">Button</Button>

在button1_click事件中,您只需访问

即可
var UserID = ((Button)sender).Tag; //cast the actual button in the grid