title: Disable combobox closing when select item
body: <p>I have <code>ComboBox</code> with custom <code>ComboBoxItem</code>. <code>ComboBoxItem</code> contains <code>TextBlock</code> and <code>CheckBox</code>. <code>CheckBox</code> bind to bool property in my ViewModel. When i click to <code>CheckBox</code>, all works fine, but when i click to <code>TextBlock</code> - <code>ComboBox</code> Closing! I need 'MultiSelection' mode inside my <code>ComboBox</code></p>
  
  <p>xaml:</p>
  
  <pre><code>&lt;ComboBox ItemsSource="{Binding Elements}"&gt;
      &lt;ComboBox.ItemTemplate&gt;
          &lt;DataTemplate&gt;
              &lt;StackPanel Orientation="Horizontal"&gt;
                  &lt;CheckBox IsChecked="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/&gt;
                  &lt;TextBlock Text="{Binding Caption}"/&gt;
              &lt;/StackPanel&gt;
          &lt;/DataTemplate&gt;
      &lt;/ComboBox.ItemTemplate&gt;
  &lt;/ComboBox&gt; 
  </code></pre>
  
  <p>VM:</p>
  
  <pre><code>public class SomeClass : INotifyPropertyChanged
  {
  
      private string m_caption;
      private bool m_isSelected;
  
      public string Caption
      {
          get { return m_caption; }
          set
          {
              if (m_caption != value)
              {
                  m_caption = value;
                  RaisePropertyChanged("Caption");
              }
          }
      }
  
      public bool IsSelected
      {
          get { return m_isSelected; }
          set
          {
              if (m_isSelected != value)
              {
                  m_isSelected = value;
                  RaisePropertyChanged("IsSelected");
              }
          }
      }
  
      public SomeClass(string _caption)
      {
          if (string.IsNullOrWhiteSpace(_caption))
              m_caption = Guid.NewGuid().ToString();
          Caption = _caption;
      }
  
      public event PropertyChangedEventHandler PropertyChanged;
  
      protected void RaisePropertyChanged(string _property)
      {
          PropertyChangedEventHandler hanlder = PropertyChanged;
          if (hanlder != null)
          {
              hanlder.Invoke(null, new PropertyChangedEventArgs(_property));
          }
      }
  }
  </code></pre>