我有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());
}
}
但即使没有事件处理程序,问题仍然存在。
答案 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}">