WPF在超链接上选择GridView的项目

时间:2014-06-26 14:00:57

标签: c# wpf gridview mvvm radgridview

我有一个Telerik RadGridView绑定到一个集合,当我在其中一个单元格中单击超链接时,我发送SelectedItem。它可以工作,但我必须先在行的其他位置单击以设置所选项目。这不是理想的,我希望在点击链接或任何相关内容时设置SelectedItem

我已经看到如何为ListView IsSelectedListViewItem执行此操作,但对于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>

1 个答案:

答案 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}}
相关问题