2017-06-19 36 views
0

私はListViewのチェックボックスを持っています。しかし、時々、チェックボックスをチェックすると、以前にチェックされた他のすべてのチェックボックスがチェックされなくなります。私は見つけることができません、どこに問題があります。WPF ListView with Checkboxのチェックを外す

ご協力いただきありがとうございます。ここで

は、XAMLコードです:

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

しかし、問題はさらにイベントハンドラずに持続する:ここで

<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があります。なぜなら、あなたに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

関連する問題