在WPF中启用按钮,具体取决于ListBox.SelectedIndex
时间:2020-03-05 18:41:05 来源:igfitidea点击:
我有一个相当经典的UI情况,两个列表框分别名为" SelectedItems"和" AvailableItems",其思想是我们已经选择的项目位于" SelectedItems"中,而可用于添加到" SelectedItems"中的项目(即尚不存在)中。
另外,我还有一个<<和>
按钮,可以将当前选择从一个列表移动到另一个列表(除了双击之外,还可以正常工作)。
在WPF中是否可以设置样式/触发器来启用或者禁用"移动"按钮,具体取决于在任一ListBox中选择的内容吗? " SelectedItems"位于左侧,因此" <"按钮会将选定的" AvailableItems"移至该列表。但是,如果没有选择任何项(" AvailableItems.SelectedIndex == -1"),我希望禁用此按钮(" IsEnabled == false"),反之亦然。
是否可以直接在XAML中执行此操作,还是需要在背后的代码中创建复杂的逻辑来进行处理?
解决方案
回答
这是解决方案。
<Button Name="btn1" >click me <Button.Style> <Style> <Style.Triggers> <DataTrigger Binding ="{Binding ElementName=list1, Path=SelectedIndex}" Value="-1"> <Setter Property="Button.IsEnabled" Value="false"/> </DataTrigger> </Style.Triggers> </Style> </Button.Style> </Button>