带有复选框的WPF ListView取消选中

时间:2017-06-19 19:06:42

标签: c# wpf xaml listview checkbox

我有ListView个复选框。但有时候,当我选中一个复选框时,之前选中的所有其他复选框都会被取消选中。我找不到,问题在哪里。

将不胜感激任何帮助。

这是XAML代码:

<ListView ItemsSource="{Binding SeatCars}" SelectionChanged="SeatSelectionChanged">
    <ListView.ItemTemplate>
        <DataTemplate>
            <CheckBox Content="{Binding}" IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}}, Path=IsSelected}"></CheckBox>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

这是EventHandler:

private void SeatSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    foreach (var item in e.AddedItems)
    {
        MainViewModel.SeatSelected.Add(item.ToString());
    }
    foreach (var item in e.RemovedItems)
    {
        MainViewModel.SeatSelected.Remove(item.ToString());
    }
}

但即使没有事件处理程序,问题仍然存在。

1 个答案:

答案 0 :(得分:0)

因为你的IsChecked价值......

这是我的复选框设计,它可以帮助您。

 <CheckBox x:Name="CheckBoxZone" Content="{Binding TheText}" 
                                  Tag="{Binding TheValue}"    
                                    Margin="0,5,0,0"  IsChecked="{Binding IsChkBox1Checked, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                  Command="{Binding DataContext.OnCheckedCommand,  RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type StackPanel} }}" CommandParameter="{Binding ElementName=CheckBoxZone, Path=Tag}">