2017-06-19 70 views
0

我有一個帶有複選框的ListView。但有時候,當我檢查複選框時,其他選中的複選框會被取消選中。我找不到,問題在哪裏。帶有複選框的WPF 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> 

這裏是事件處理程序:

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()); 
    } 
} 

但問題仍然存在,即使沒有事件處理程序。因爲你的價值器isChecked的

+0

** SeatCars **內容是否保持不變?它是ObservableCollection嗎?我試過一些小應用程序。但似乎沒有能夠重現您的問題,所以可能丟失了一些東西...... – Roman

回答

0

其...

這裏是我的複選框設計,可以幫助你。

<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}"> 
+0

這是由於Ischecked。謝謝你的幫助。 – bobo933

+0

歡迎您! – Lina