![](/img/trans.png)
[英]how to get selected item value of a DataGridHyperlinkColumn in wpf datagrid
[英]How to get selected value from DataGridHyperlinkColumn using wpf data grid
我的數據網格具有一個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>
如何在Hyperlink_Click方法中獲取ID?
您可以像這樣從TextBlock
的DataContext
獲取ID
:
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;
}
或者,您可以像其他答案中所建議的那樣設置TextBlock
Tag
屬性:
<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>
然后,您可以在事件處理程序中獲取ID
值,如下所示:
private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
TextBlock textblock = (TextBlock)sender;
string id = (string)textblock.Tag;
}
您可以使用ID設置超鏈接的Tag屬性,並獲取Tag值,如下所示
private void Hyperlink_Click(object sender, RoutedEventArgs e)
{
HyperlinkButton hlb = (HyperlinkButton)sender;
if(hlb !=null){
var id = hlb.tag
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.