ComboBox с элементом “Не выбрано”

373
28 февраля 2017, 14:32

Мне нужен ComboBox с постоянным элементом "Не выбрано", который означает, что SelectedValue равно null.

При этом источники данных могут быть различных типов. Будь то List<MyClass> или List<int>.

Пока что ничего более или менее разумного в голову не приходит. Из неразумного - создать новые коллекции из существующих с первым значением null и использовать их, но что то мне подсказывает, что это лажа.

Answer 1

Можно сделать так:

1) Создаем в ресурсах коллекцию, которая привязана к вашим реальным данным:

<Window.Resources>
    <CollectionViewSource x:Key="MyKey" Source="{Binding Path=MyData}" />
</Window.Resources>

2) Далее у ComboBox в качестве ItemsSource используем CompositeCollection, выглядит это следующим образом:

<ComboBox>
    <ComboBox.ItemsSource>
       <CompositeCollection>
           <ComboBoxItem Content="Не выбрано" />
           <CollectionContainer Collection="{Binding Source={StaticResource MyKey}}" />
       </CompositeCollection>
   </ComboBox.ItemsSource>
</ComboBox>
READ ALSO
Main возвращает неверное значение

Main возвращает неверное значение

Есть программа, которая по выполнению должна вернуть 0 или 1 в случае успеха/отказаОперации можно прервать сочетанием клавиш

255
Извлечение файлов из архива

Извлечение файлов из архива

Здравствуйте! Есть класс который извлекает файлы из архива с перезаписью:

289
Удалить файлы, загруженные в WebBrowser

Удалить файлы, загруженные в WebBrowser

Есть 3 формыКаждая по очереди открывается, происходят определенные операции (скачивание изображений, затем их конвертация и вставка в поля...

241
Не работает SetResolution на Bitmap

Не работает SetResolution на Bitmap

Немного не понимаю, почему не работает данный код:

250