Поиск WPF ComboBox с флажками

Мои навыки Google не позволяют мне. Любой слышал о подобном элементе для WPF. Я пытаюсь сделать это так (winforms screenshot).

alt text http://sofru.miximages.com/wpf/up.png

Вы можете сделать это самостоятельно, установив DataTemplate в поле со списком. В этой статье показано, как – для списка, но принцип тот же.


Другая статья здесь , пожалуй, лучше подходит для того, что вы пытаетесь сделать, просто установите первый столбец шаблона элемента как флажок и привяжите его к bool в бизнес-объекте.

        

Есть мой combobox. Я использую код и код Мартина Харриса из этой ссылки. Может ли WPF ComboBox отображать альтернативный текст, когда его выбор равен нулю?

            

Малый class для источника данных:

 public class SelectableObject  { public bool IsSelected { get; set; } public T ObjectData { get; set; } public SelectableObject(T objectData) { ObjectData = objectData; } public SelectableObject(T objectData, bool isSelected) { IsSelected = isSelected; ObjectData = objectData; } } 

И есть два обработчика – один для обращения к CheckBox и один для формирования Text для ComboBox.

 private void OnCbObjectCheckBoxChecked(object sender, RoutedEventArgs e) { StringBuilder sb = new StringBuilder(); foreach (SelectableObject cbObject in cbObjects.Items) if (cbObject.IsSelected) sb.AppendFormat("{0}, ", cbObject.ObjectData.Description); tbObjects.Text = sb.ToString().Trim().TrimEnd(','); } private void OnCbObjectsSelectionChanged(object sender, SelectionChangedEventArgs e) { ComboBox comboBox = (ComboBox)sender; comboBox.SelectedItem = null; } 

Для ComboBox.ItemsSource я использую

 ObservableCollection> 

где tblObject – это тип моего объекта, список которого я хочу отображать в ComboBox.

Надеюсь, этот код полезен кому-то!

Попробуйте CheckComboBox из Extended WPF Toolkit . Главное преимущество для меня – наличие двух списков для привязки:

  • все элементы, доступные для выбора
  • только выбранные предметы

Я нахожу этот подход более практичным. Кроме того, вы можете указать value и display элементы коллекций, которые вы связываете.

Если вы не хотите приносить кучу других элементов управления с помощью CheckComboBox , вы можете получить исходный код , это довольно просто (нужно также выбрать class Selector ).

  • Как использовать значок, который является ресурсом в WPF?
  • Используйте StyleSelector для кнопки
  • WPF показывает диалог перед основным окном
  • Связывание видимости для DataGridColumn в WPF
  • заполнять дерево из списка путей файла в wpf
  • Как правильно реализовать BackgroundWorker с обновлениями ProgressBar?
  • WPF MVVM INotifyPropertyChanged Implementation - модель или ViewModel
  • Как связать кнопку WPF с командой в ViewModelBase?
  • Как связать массив байтов с изображением в WPF с преобразователем значений?
  • Где находится элемент управления UpDown WPF?
  • Открыть диалоговое окно каталога
  • Давайте будем гением компьютера.