单击网格视图的行

本文关键字:视图 网格 单击 | 更新日期: 2023-09-27 18:32:58

我每行都附有一个RadGridView和一个HyperLink按钮。我想在超链接的Click事件上获取列ID的值。我试过这个,但得到了NullReferenceException,因为SelectedItem包含 null。

private void OnGetDetailsClick(object sender, RoutedEventArgs e)
{
   ProductDetail productDetail = new ProductDetail();
   Product product = this.grdProductGrid.SelectedItem as Product;
   productDetail.ProductId = product.ProductID
}

Xaml for RadGridView

<telerik:RadGridView HorizontalAlignment="Left" 
                          Height="278" 
                          VerticalAlignment="Top" 
                          Width="1220" 
                          Margin="20,0,0,0" 
                          Name="grdProductGrid"
                          ColumnWidth="*"
                          AutoGenerateColumns="False" >
                <telerik:RadGridView.Columns>
                    <telerik:GridViewDataColumn x:Name="ID" 
                                                DataMemberBinding="{Binding Path=ProductID}" 
                                                Header="ID" 
                                                IsReadOnly="True" 
                                                IsVisible="False"/>

                    <telerik:GridViewDataColumn x:Name="Name" 
                                                DataMemberBinding="{Binding Path=Name}" 
                                                Header="Name" 
                                                IsReadOnly="True" />
                    <telerik:GridViewDataColumn x:Name="Description" 
                                                DataMemberBinding="{Binding Path=Description}" 
                                                Header="Description" 
                                                IsReadOnly="True" />

                    <telerik:GridViewColumn Header="Details" Width="*">
                        <telerik:GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <HyperlinkButton Content="Details" 
                                                     Tag="Hyperlinkbutton" 
                                                     HorizontalAlignment="Center" 
                                                     Click="OnGetDetailsClick"/> 
                                </StackPanel>
                            </DataTemplate>
                        </telerik:GridViewColumn.CellTemplate>
                    </telerik:GridViewColumn>
                  </telerik:RadGridView.Columns>
</telerik:RadGridView>

我的代码有什么问题?如何访问Click事件上的行?

单击网格视图的行

您可以使用

CommandParameterProduct传递给点击事件

  <HyperlinkButton Content="Details" 
    Tag="Hyperlinkbutton" 
    HorizontalAlignment="Center" 
   Click="OnGetDetailsClick" CommandParameter={Binding .}/> 

在你的代码中,你有

Product product=((Product)((HyperlinkButton)sender).CommandParameter)