Xaml 无法将ListView.SelectedItems.Count绑定到Button.IsEnabled
我有一个按钮要绑定到listview的selectedItem计数。我找不到我的错误在哪里。无论testListView.SelectedItems.Count如何,按钮状态始终处于启用状态 我需要某种转换器吗?如果计数为零,它应该隐式地将其转换为false noXaml 无法将ListView.SelectedItems.Count绑定到Button.IsEnabled,xaml,winrt-xaml,Xaml,Winrt Xaml,我有一个按钮要绑定到listview的selectedItem计数。我找不到我的错误在哪里。无论testListView.SelectedItems.Count如何,按钮状态始终处于启用状态 我需要某种转换器吗?如果计数为零,它应该隐式地将其转换为false no <ListView x:Name="testListView" SelectionMode="Multiple" BorderThickness="1"> <List
<ListView x:Name="testListView" SelectionMode="Multiple" BorderThickness="1">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<Button x:Name="Button" Content="TestButton" IsEnabled="False" IsEnabled="{Binding ElementName=testListView, Path=SelectedItems.Count}"/>
由于
SelectedItems
集合的Count
属性的类型为int
,并且IsEnabled
属性需要bool
输入,并且C#中不存在int
到bool
的隐式转换,因此您需要一个转换器或数据触发器
一个简单的IValueConverter
应该可以做到这一点,只需使用
return ((int)value) > 0;
作为
转换功能的内容 通过样式使用数据触发器进行更新;像这样的方法应该会奏效:
<Button x:Name="Button" Content="TestButton">
<Button.Style>
<Style TargetType="Button">
<Setter Property="IsEnabled" Value="true" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=testListView, Path=SelectedItems.Count}" Value="0">
<Setter Property="IsEnabled" Value="false" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
错误消息显示了什么?@Mephy输出窗口中没有错误