我有一个Telerik RadGridView
绑定到一个集合,当我在其中一个单元格中单击超链接时,我发送SelectedItem
。它可以工作,但我必须先在行的其他位置单击以设置所选项目。这不是理想的,我希望在点击链接或任何相关内容时设置SelectedItem
。
我已经看到如何为ListView
IsSelected
和ListViewItem
执行此操作,但对于Telerik RadGridView
或通用GridView
没有任何内容。
这是我的链接:
<DataTemplate>
<TextBlock Padding="3,0">
<Hyperlink CommandParameter="{Binding SelectedItem,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type telerik:RadGridView}}}"
Command="{Binding Path=DataContext.SomeCommand,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type telerik:RadGridView}}, Mode=OneWay}">
Click here please
</Hyperlink>
</TextBlock>
</DataTemplate>
答案 0 :(得分:1)
我认为您需要设置UIElement.IsKeyboardFocusWithin
property。我使用这两个用来点击子控件的Style
ListBoxItem
反映在ListBoxItem
...您可以将ListViewItem
更改为Style
应该仍然有效。您可能想要应用第一个<Style x:Key="ListBoxItemSelectionStyle" TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="IsSelected" Value="True" />
</Trigger>
<Trigger Property="IsKeyboardFocusWithin" Value="False">
<Setter Property="IsSelected" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="ListBoxItemSemiSelectionStyle" TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="IsSelected" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
,但我已经包含第二个,以防第一个完全满足您的要求:
{{1}}