获取 GridView 的点击行
Get Clicked Row of GridView
我在每一行上附加了一个 RadGridView
和一个 HyperLink
按钮。我想获取超链接 Click
事件中列 ID
的值。我尝试了这个但得到了 NullReferenceException
因为 SelectedItem
包含空值。
private void OnGetDetailsClick(object sender, RoutedEventArgs e)
{
ProductDetail productDetail = new ProductDetail();
Product product = this.grdProductGrid.SelectedItem as Product;
productDetail.ProductId = product.ProductID
}
Xaml 对于 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
事件中的行?
您可以使用 CommandParameter
将 Product
传递给点击事件
<HyperlinkButton Content="Details"
Tag="Hyperlinkbutton"
HorizontalAlignment="Center"
Click="OnGetDetailsClick" CommandParameter={Binding .}/>
在你后面的代码中有
Product product=((Product)((HyperlinkButton)sender).CommandParameter)
我在每一行上附加了一个 RadGridView
和一个 HyperLink
按钮。我想获取超链接 Click
事件中列 ID
的值。我尝试了这个但得到了 NullReferenceException
因为 SelectedItem
包含空值。
private void OnGetDetailsClick(object sender, RoutedEventArgs e)
{
ProductDetail productDetail = new ProductDetail();
Product product = this.grdProductGrid.SelectedItem as Product;
productDetail.ProductId = product.ProductID
}
Xaml 对于 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
事件中的行?
您可以使用 CommandParameter
将 Product
传递给点击事件
<HyperlinkButton Content="Details"
Tag="Hyperlinkbutton"
HorizontalAlignment="Center"
Click="OnGetDetailsClick" CommandParameter={Binding .}/>
在你后面的代码中有
Product product=((Product)((HyperlinkButton)sender).CommandParameter)