WPF 将控件可见性绑定(bind)到另一个控件的焦点属性

标签 wpf xaml binding controls

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

我想我可以将按钮的可见性绑定(bind)到组合框的某些焦点属性,如下所示:

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

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

最佳答案

好的,按照我的意愿进行工作的方法是:

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

这里有两个关键因素:将按钮的可见性绑定(bind)到组合框的 IsKeyboardFocusWithin 属性,并将按钮的 Focusable 属性设置为 false,否则当您想要单击它时它会折叠起来。

希望这是有用的。

关于WPF 将控件可见性绑定(bind)到另一个控件的焦点属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14068606/

相关文章:

WPF 菜单选项卡导航

c# - WPF 数据网格组合框列 : how to manage event of selection changed?

c# - 类型的对象无法应用于期望类型为system.windows.data.ivalueconverter的属性

c# - 如何将 GridView 作为 ConverterParameter 传递

.net - 是/否适用于其他文化的 WPF 确认消息框

c# - .Net Maui/XAML QueryParameter 在 View 模型构造函数中为 NULL,但在 XAML 中可用,如何在 View 模型中访问它?

c# - UWP 文本框中的文本和光标垂直居中

binding - Durandal 撰写 : activate method not always called

python - 使用 clang python 绑定(bind)获取二进制操作代码

c++ - 构造函数中的构造函数中的绑定(bind)