wpf - WPF:仅当列表框中的一项被选中时才启用按钮
问题描述
我对 WPF 很陌生,所以请原谅我提出一个原始问题。我研究了类似的问题,关于如何仅在通过绑定在 ListBox 中选择项目时才启用按钮,但我的情况有点复杂。
- 如果没有选择 ListBox 中的任何项目,则需要禁用该按钮。
- 如果选择了 Listbox 中的一项,则需要启用该按钮。
- 如果选择了 Listbox 中的多个项目,则需要禁用该按钮。
换句话说,只有当用户在 ListBox 中选择一项时才应该启用它。
我尝试了什么:
<Button Click="EditSingleEntryButton_Click">Edit selected
<Button.Style>
<Style>
<Style.Triggers>
<DataTrigger
Binding="{Binding ElementName=entriesListBox, Path=SelectedItems.Count}"
Value="0">
<Setter Property="Button.IsEnabled" Value="true"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
但是,这不起作用 - 该按钮始终保持启用状态。
解决方案
你需要在你的风格中添加一点:
<Button Click="EditSingleEntryButton_Click">Edit selected
<Button.Style>
<Style TargetType="Button">
<Setter Property="IsEnabled" Value="False"/>
<Style.Triggers>
<DataTrigger
Binding="{Binding ElementName=entriesListBox, Path=SelectedItems.Count}"
Value="1">
<Setter Property="IsEnabled" Value="true"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
推荐阅读
- powerbi - 当我尝试在 powerbi 的电源查询编辑器上使用 if 语句时,我不断收到令牌 rightparen 预期错误
- c++ - 如何在 C++ 中正则表达式方括号“[]”?
- ruby-on-rails - Rails 仅在特定字段值更改时更新验证
- string - 将字符串混合输入拆分为单个值的范围
- windows - 无法连接到新安装的 MongoDB
- python-3.x - 从 DataFrame 中替换切片并将其放在末尾
- java - Spring REST获取多个映射端点的url路径
- python - 使用 python 从 Salesforce 导入数据
- android - 如何获取前两个选择器意图并仅在android中为用户显示它们
- android - 使用 adb 进行深度链接,而不是在浏览器中