WPF:仅当列表框中的一项被选中时才启用按钮
Posted
技术标签:
【中文标题】WPF:仅当列表框中的一项被选中时才启用按钮【英文标题】:WPF: enabling button only if one item in ListBox is selected 【发布时间】:2021-10-20 14:33:51 【问题描述】:我对 WPF 很陌生,所以请原谅我提出一个原始问题。我研究过类似的问题,关于如何仅在通过绑定在 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>
但是,这不起作用 - 按钮始终保持启用状态。
【问题讨论】:
【参考方案1】:你需要为你的风格添加一点:
<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>
【讨论】:
非常感谢。在您的示例中,我必须将 Value 更改为 1,否则效果很好。 你是对的。我没有注意它。由于您的评论,我已经更正了代码。以上是关于WPF:仅当列表框中的一项被选中时才启用按钮的主要内容,如果未能解决你的问题,请参考以下文章