我有一个显示项目列表的组合框,我想在它旁边放置一个按钮来触发命令以查看所选项目的详细信息。到目前为止,一切都很好。现在我希望该按钮仅在组合框具有焦点时才可见(或处于“编辑”模式,但不仅在弹出窗口打开时)。
我想我可以将按钮的可见性绑定到组合框的某些焦点属性,如下所示:
<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}}"/>
这里有两个关键因素:将按钮的可见性绑定到组合框的 IsKeyboardFocusWithin 属性,并将按钮的 Focusable 属性设置为 false,否则当您想要单击它时它会折叠。
希望这有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)