C# WPF ListBox Case de Liaison IsChecked à un Champ et IsSelected?

Je suis en train de lier une Case à cocher pour un domaine, mais aussi de déclencher la case du IsSelected.

Voici la liste de configuration qui est de travailler avec la Liaison de données

<ListBox x:Name="lstExclude"  Grid.Column="2" SelectionMode="Single" >
  <ListBox.ItemTemplate>
    <DataTemplate>
      <CheckBox  Content="{Binding Text}" 
          IsChecked="{Binding Checked ,Mode=TwoWay}"/>
      </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

Et voici le code associé à la liaison

public MainWindow()
{
    InitializeComponent();

    List<CheckBoxListItem> items1 = new List<CheckBoxListItem>();
    items1.Add(new CheckBoxListItem(true, home”));
    items1.Add(new CheckBoxListItem(false, work”));
    items1.Add(new CheckBoxListItem(true, cell”));
    lstExclude.ItemsSource = items1;
}

public class CheckBoxListItem
{
   public bool Checked { get; set; }
   public string Text { get; set; }

   public CheckBoxListItem(bool ch, string text)
   {
     Checked = ch;
     Text = text;
    }
}

Cette lie la case cochée valeur correctement, mais si je clique sur la case (cochée ou non cochée), je le veux pour sélectionner l'élément, donc j'ai essayé de le faire de cette façon

<ListBox x:Name="lstExclude"  Grid.Column="2" SelectionMode="Single" >
  <ListBox.ItemTemplate>
    <DataTemplate>
      <CheckBox  Content="{Binding Text}" 
          IsChecked="{Binding RelativeSource={RelativeSource AncestorType=ListBoxItem}, Path=IsSelected}"/>
      </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

Donc cela me donne les résultats de cliquer sur la case à cocher (cochez ou décochez) et sélectionnez l'élément. Le problème est maintenant l'objet de champ n'est pas lié quand j'ai ajouter les éléments.

Comment pouvez-vous obtenir la case pour être à la fois lié à la Coché le terrain ET ont encore la IsSelected travail?

vous pouvez utiliser un multibing et un MultiValueConverter

OriginalL'auteur user3573191 | 2014-04-25