聚焦控制不起作用

时间:2016-10-11 13:16:22

标签: wpf command focus

我有一个填充了TreeView和其他控件的Window。在用户选择了TreeView的项目之后,我想在按下Enter键时触发命令,然后将焦点更改为TreeView,以便可以看到选择。

命令调用与此代码一起使用:

<Window ...>
    ...
    <Window.InputBindings>
        <KeyBinding Command="{Binding Path=MyCommand}" Key="Enter"/>
    </Window.InputBindings>
    ...
    <TreeView x:Name="tv" ...>
        ...
    </TreeView>
</Window>

但是我不知道在执行Command之后如何将焦点更改为TreeView。我如何在XAML或Codebehind中执行此操作? XAML答案是首选。

这就是我的尝试:

<Window.InputBindings>
    <KeyBinding Command="{Binding Path=ChangeCategoryCommand}" Key="Enter" FocusManager.FocusedElement="{Binding ElementName=tv}"/>
</Window.InputBindings>

但按Enter后,TreeView中的选择不可见,所以我显然做错了......

1 个答案:

答案 0 :(得分:1)

只有代码隐藏解决方案:

select a.ProductID, 2, C.Reference from Product as a
  left join Product_Supplier as c on c.ProductID= a.ProductID and c.SupplierID=2 -- moved criterium
where a.ProductID<4 

和代码隐藏:

<Window 
PreviewKeyUp="OnPreviewKeyUp">
<Window.InputBindings>
    <KeyBinding Key="Enter" Command="{Binding Path=MyCommand}" />
</Window.InputBindings>

<TreeView x:Name="tv" />

仅供参考:树形视图的选定项目是只读的,因此不适用于绑定。