无法将ListView.SelectedItems.Count绑定到Button.IsEnabled

时间:2015-04-12 01:21:48

标签: xaml winrt-xaml

我有一个Button,我想绑定到listview的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}"/>

2 个答案:

答案 0 :(得分:1)

由于SelectedItems集合Count属性的类型为int,而IsEnabled属性需要bool输入,并且没有隐含C#中存在intbool的转换,您需要转换器或数据触发器。

一个简单的IValueConverter应该可以解决问题,只需使用

之类的东西
return ((int)value) > 0;

作为Convert函数的内容!

答案 1 :(得分:1)

通过Style使用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>