2012-05-10 4 views
0

У меня есть Telerik RadComboBox установить как:WPF ComboBox SelectedValue привязки не обновляется, когда выбор изменяется

<t:RadComboBox Grid.Column="1" Grid.ColumnSpan="5" Grid.Row="3" x:Name="customer" IsReadOnly="True" IsEditable="True" 
       ItemsSource="{Binding Path=Customers, Mode=OneWay}" DisplayMemberPath="Name" SelectedValuePath="Id" 
       SelectedValue="{Binding Path=CustomerId, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}" 
       SelectionChanged="customer_SelectionChanged_1"/> 

комбо правильно населенные, но если я нажимаю падение вниз и выберите элемент из списка, SelectedValue недвижимость не обновляется. Если я начну печатать в комбо и выбрать элемент таким образом, свойство SelectedValue не будет обновлено. BUT если я использую колесико мыши или клавиши со стрелками, то SelectedValue свойство должным образом обновлено.

Я добавил SelectionChanged события в коде, чтобы я мог посмотреть на свойствах контроля (это приложение с помощью шаблона MVVM), и похоже, что даже когда SelectedItem свойства является набором для действительного пункта , свойство SelectedValue - null. Если я использую колесо мыши для прокрутки вниз до элемента, то оба свойства будут правильно настроены так, как я ожидал бы.

ответ

2

Оказалось, что это связано с тем, что моя модель просмотра возвращает Guid.Empty по умолчанию, когда нет выбора. Но поскольку в списке нет элемента, имеющего свойство IdGuid.Empty, элемент управления путается.

Добавление атрибута: SelectedIndex="0" исправляет это.

+0

Мне тоже понравилось .. Я использовал 'SelectedValue = null', когда ничего не было выбрано (с' SelectedValuePath' установлено значение 'Name'), и это заставило «control запутаться», как вы говорите, поэтому я переключился на использование 'SelectedItem' и все, похоже, сработало. –

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