绑定DatagridHyperlinkColumn

时间:2014-06-30 20:20:39

标签: wpf xaml hyperlink

我正在尝试创建一个datagridHyperlink列,但是我无法获取已单击的My Object的ID。

我试过了:

<DataGridHyperlinkColumn Header="Nom" Width="170"
                         Binding="{Binding MyObject.Name}" >
   <DataGridHyperlinkColumn.ElementStyle>
      <Style>
        <EventSetter Event="Hyperlink.Click" Handler="Click" />
        <Setter Property="Hyperlink.Tag" Value="{Binding MyObject.Id}"/>
      </Style>
    </DataGridHyperlinkColumn.ElementStyle>
</DataGridHyperlinkColumn >

和我的职能:

private void ClicJoueur(object sender, RoutedEventArgs e)
{
    Hyperlink hp = (Hyperlink)e.OriginalSource;
    int id = (int)hp.Tag;
}

我的想法是将tag属性设置为我的对象的id,并能够管理事件并知道所单击对象的id。

但它不起作用,也许是因为Tag属性不是依赖属性?获得的标签始终为0.

如何通过更好的解决方案获取对象的真实ID?

谢谢

1 个答案:

答案 0 :(得分:1)

无需依赖标记属性,您可以通过 DataContext 发件人对象获取 TextBlock < / strong>在你的情况下。

private void ClicJoueur(object sender, RoutedEventArgs e)
{
    int id = (((TextBlock)sender).DataContext as ClassName).MyObject.Id;
}

*将 ClassName 替换为声明MyObject属性的基础类名。