Поиск 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 ).

  • Параметры реле освещения MVVM LightCommand
  • WPF: добавление элементов управления из кода
  • Вызывающий stream должен быть STA, потому что многие компоненты пользовательского интерфейса требуют этого
  • Модель Mvvm ViewModel
  • WPF Canvas, как динамически добавлять детей с кодом MVVM
  • имя не существует в пространстве имен clr-namespace
  • Реализация WPF ICommand MVVM
  • Неактивность и активность WPF
  • Доступ к родительскому DataContext из DataTemplate
  • Изменение вида для ViewModel
  • Как реализовать воздушное сообщение в приложении WPF
  • Давайте будем гением компьютера.