我的数据网格有一个DataGridHyperlinkColumn,但是单击该超链接时我没有得到该值。我的数据网格是
<datagrid name="datagrid1">
<column>
<DataGridHyperlinkColumn Binding="{Binding ID}" Header="ID" Width="100" >
<DataGridHyperlinkColumn.ElementStyle>
<Style TargetType="TextBlock" >
<EventSetter Event="Hyperlink.Click" Handler="Hyperlink_Click" />
</Style>
</DataGridHyperlinkColumn.ElementStyle>
</DataGridHyperlinkColumn>
</column>
</datagrid>
Run Code Online (Sandbox Code Playgroud)
如何在Hyperlink_Click方法中获取ID?
你可以得到ID从TextBlock的DataContext,像这样:
private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
//cast sender to TextBlock, and get it's data context
var dc = ((TextBlock)sender).DataContext;
//cast data context to your model type, and get the ID property
var id = ((YourModelType)dc).ID;
}
Run Code Online (Sandbox Code Playgroud)
或者您可以设置其他答案中建议Tag的TextBlock类似属性:
<DataGridHyperlinkColumn Binding="{Binding ID}" Header="ID" Width="100" >
<DataGridHyperlinkColumn.ElementStyle>
<Style TargetType="TextBlock" >
<Setter Property="Tag" Value="{Binding ID}" />
<EventSetter Event="Hyperlink.Click" Handler="Hyperlink_Click" />
</Style>
</DataGridHyperlinkColumn.ElementStyle>
</DataGridHyperlinkColumn>
Run Code Online (Sandbox Code Playgroud)
然后,您可以ID在事件处理程序中获取价值,如下所示:
private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
TextBlock textblock = (TextBlock)sender;
string id = (string)textblock.Tag;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1860 次 |
| 最近记录: |