У меня есть DataGrid
с строками и столбцами. Каждая строка соответствует элементу в моей коллекции данных. Для одного из моих столбцов я хочу иметь гиперссылку с текстом имени моего элемента данных, а когда я нажимаю на гиперссылку, она выполнит команду для пункта гиперссылки THAT (строка, в которой он находится)Гиперссылка в столбце datatemplate имеет проблемы с обновлением CurrentItem DataGrid
Надеюсь, это имеет смысл до сих пор.
Моя проблема: как связать гиперссылку CommandParameter
, чтобы использовать элемент данных текущей строки? Я столкнулся с проблемой, если у меня есть выбранная случайная ячейка (скажем, строка 3 столбца 2), и я нажимаю гиперссылку в столбце 1 строки 1, она скажет, что текущий элемент - это элемент в строке 3, а не строка 1! !
Это мой XAML код:
<DataGridTemplateColumn Width="80">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock>
<Hyperlink Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}, Path=DataContext.NavigateToFormCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}, Path=CurrentItem}">
<TextBlock Text="{Binding dataName}" />
</Hyperlink>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Если я нажимаю ячейку гиперссылка находится, а затем щелкните по гиперссылке, все будет работать нормально. Но это не очень хороший рабочий процесс ... если пользователь щелкает по гиперссылке он должен иметь право пункт ...