2010-03-03 3 views
1

Я хотел бы, чтобы у вас была опция combobox с городами, один из вариантов - пустой вариант (без города). Источник items привязан к списку объектов «Город». Список содержит пустое значение для представления пустой опции. Выбранный элемент привязан к свойству типа «Город». Все работает, кроме ситуации, когда пустая опция выбрана в поле со списком. Свойство, привязанное к SelectedItem, не обновляется с нулевым значением, но сохраняет предыдущий выбор. Как я могу это решить?Combobox с нулевым значением - SelectedItem binding

спасибо за asnwer Грег

ответ

0

Это не мой опыт. У меня есть следующий код XAML:

<TextBlock Text="{Binding ElementName=_cbx, Path=SelectedItem}" Margin="20" /> 
<ComboBox x:Name="_cbx" ItemsSource="{Binding Cities}" HorizontalAlignment="Left" SelectionChanged="OnNewCity" /> 

Я создал свойство, называемые городами в коде-за в виде списка и заполнить его со значениями, которые являются строками нулей. Когда выбрано значение null, SelectedItem является ComboBoxItem.

В OnNewCity я заполняю другое текстовое поле на основе SelectedItem, и я вижу то же поведение.

Не могли бы вы рассказать больше о своем XAML и коде?

Редактировать после автора комментария:

Спасибо за XAML. Я использовал тот же самый, с классом City вместо списка строк, и я получаю такое же поведение, как и вы. Точка прерывания в SelectedCity показывает, что сеттер не вызывается. Когда объект City имеет значение null, свойство SelectedItem имеет тип ComboBoxItem, и поэтому я предполагаю, что WPF ищет свойство SelectedCity типа, совместимого с ComboBoxItem, для вызова setter. В этом случае он не может найти его. Я изменил свой код для установки SelectedCity объекта type. В этом случае сеттер вызывается даже для нулевого города!

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

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

+0

вот как я его использую, Города - это список объектов типа клиента «Город» плюс нулевое значение и свойство SelectedCity также относится к типу "Город" – Greg

Смежные вопросы