嗯,我想我的场景很容易有2个元素: 列表框和按钮:
<ListBox Name="BannedItemsListBox"
Margin="5"
MinWidth="100"
MaxWidth="100" " Height="
204" ItemsSource="{Binding Path=BannedItems, Mode=TwoWay}"></ListBox>
<Button Name="RemoveBannedItemsButton"
Margin="5"
MinWidth="65"
Height="22"
Click="RemoveBannedItemButton_Click">Remove</Button>
我想将IsEnabled
属性按钮绑定为true,只有在 XAML
我试过
IsEnabled="{Binding ElementName=BannedSourcesListBox, Path=TouchesDirectlyOver.Count}"
但没有去。
答案 0 :(得分:5)
选择与Touches有什么关系? (此外ElementName
已关闭)
我会试试这个:
IsEnabled="{Binding SelectedItems.Count, ElementName=BannedItemsListBox}"
编辑:显然,与触发变体不同,人们似乎并没有看到它是如何工作的:基本上绑定系统试图将输入转换为手头的属性,一个布尔值,所以当它得到一个整数,0
将转换为false
,高于true
。因此,如果选择了一个或多个项目,将启用按钮。
答案 1 :(得分:3)
<Button Content="Button"
Height="23"
HorizontalAlignment="Left"
Margin="138,12,0,0"
Name="button1"
VerticalAlignment="Top"
Width="75"
Click="button1_Click">
<Button.Style>
<Style>
<Setter Property="Button.IsEnabled"
Value="True" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=lstTest , Path=SelectedItem}"
Value="{x:Null}">
<Setter Property="Button.IsEnabled"
Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>