无法将 ListView.SelectedItems.Count 绑定到 Button.IsEnabled
Unable to Bind ListView.SelectedItems.Count to Button.IsEnabled
我有一个 Button,我想将其绑定到列表视图的 selectedItem 计数。我找不到我的错误在哪里。无论testListView.SelectedItems.Count.
如何,按钮状态始终启用
我需要某种转换器吗?如果 Count 为零,它应该隐式地将其转换为 false no ?
<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;
作为Convert
函数的内容!
通过样式使用 DataTrigger 进行更新;这样的事情应该有效:
<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>
我有一个 Button,我想将其绑定到列表视图的 selectedItem 计数。我找不到我的错误在哪里。无论testListView.SelectedItems.Count.
如何,按钮状态始终启用我需要某种转换器吗?如果 Count 为零,它应该隐式地将其转换为 false no ?
<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;
作为Convert
函数的内容!
通过样式使用 DataTrigger 进行更新;这样的事情应该有效:
<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>