WPF将控件可见性绑定到另一个控件的聚焦属性

WPF将控件可见性绑定到另一个控件的聚焦属性,wpf,xaml,binding,controls,Wpf,Xaml,Binding,Controls,我有一个显示项目列表的组合框,我想在它旁边放置一个按钮,触发一个命令以查看所选项目的详细信息。到目前为止,一切顺利。现在,我希望只有当组合框有焦点时(或者处于“编辑”模式,但不只是当弹出窗口打开时),按钮才可见 我想我可以将按钮的可见性绑定到combobox的某个焦点属性,如下所示: <Button Content="Details" Visibility="{Binding ElementName=elementListComboBox, Path=IsFocused, Converte

我有一个显示项目列表的组合框,我想在它旁边放置一个按钮,触发一个命令以查看所选项目的详细信息。到目前为止,一切顺利。现在,我希望只有当组合框有焦点时(或者处于“编辑”模式,但不只是当弹出窗口打开时),按钮才可见

我想我可以将按钮的可见性绑定到combobox的某个焦点属性,如下所示:

<Button Content="Details" Visibility="{Binding ElementName=elementListComboBox,
Path=IsFocused, Converter={StaticResource Bool2VisibilityConverter}}"/>


但是我没有办法知道我想要的控制是否集中。我查看了FocusManager.FocusedElement,但不知道如何在绑定中获得所需的聚焦控件。有没有办法在XAML中实现这一点?

好的,让它按我所希望的那样工作的方法是:

 <Button Command="{Binding SomeCommand}"
         Content="Details" 
         Focusable="False"
         Visibility="{Binding ElementName=elementListComboBox, 
                      Path=IsKeyboardFocusWithin, 
                      Converter={StaticResource Bool2VisibilityConverter}}"/>

这里有两个关键因素:将按钮的可见性绑定到combobox的IsKeyboardFocusWithin属性,并将按钮的Focusable属性设置为false,否则当您想要单击它时,它将被折叠


希望这有用。

这有用吗@PanagiotisKanavos我试过这个,但不起作用:谢谢你的输入。@PanagiotisKanavos对不起!我刚刚意识到我之前的评论中有一个输入错误,你的建议很有效。将下面的行发布为并回答,以便我可以批准它:谢谢!