我有一个填充了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中的选择不可见,所以我显然做错了......
答案 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" />
仅供参考:树形视图的选定项目是只读的,因此不适用于绑定。