Что не так со следующим? Свойство Tag возвращает ноль. Однако свойство Binding for Id определенно возвращает значение типа int.
<ListBox ItemsSource="{Binding ElementName=myDomainDataSource, Path=Data}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Id, Mode=OneWay}" />
<HyperlinkButton Content="Edit" Tag="{Binding ElementName=Id, Mode=OneWay}" Click="Edit_Click" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
, а затем ...
private void Edit_Click(object sender, RoutedEventArgs e)
{
ContentControl c = sender as ContentControl;
// exception - c.Tag is null
int id = (int)c.Tag;
}
Свойство Id показывает значение в пользовательском интерфейсе, но, похоже, оно не сохраняется в свойстве тега кнопок.