У меня странная проблема с WPF, которую я впервые заметил в компоненте Developer Express (проблема при http://www.devexpress.com/Support/Center/p/Q352950.aspx).
Кажется, что комбинированные списки слишком рано связываются с SelectedItem, и я не могу понять, что делатьоб этом.
Копирование из экспресс-выпуска разработчика (с некоторыми изменениями для ясности):
В моем XAML есть следующий комбобоксит:
<dxe:ComboBoxEdit Name="CharacteristicDropdown" ItemsSource="{Binding Path=Characteristics}" SelectedItem="{Binding Path=StratifyCharacteristic}" ValueMember="CharacteristicName" DisplayMember="CharacteristicName" />
(Примечание -та же проблема, очевидно, существует из-за обычного ComboBox, поэтому я просто сохранил здесь код)
Моя проблема в том, что SelectedItem устанавливается гораздо раньше, чем я ожидаю. Когда изменяется ItemsSource, первый элемент в нем становитсяSelectedItem. Это крайне нелогично - оно НЕ выбрано, просто потому, что оно теперь находится в списке. Более того, оно не фактически визуально выбрано в выпадающем списке. Я хочу, чтобы SelectedItem был установлен, когда я фактически выбралэлемент, через код или взаимодействие с пользовательским интерфейсом, а не только когда я изменяю ItemsSource.
Просто чтобы быть полностью понятным, это цепочка дажеts:
1) У меня есть привязка данных Grid к BindingList элементов
2) У меня есть база данных ComboBox для того же BindingList, что и для сетки
3) Я используюСетка, чтобы добавить что-то в этот список.(Это срабатывает даже до того, как элемент полностью заполнен в сетке, однако это не имеет значения.)
4) SelectedItem Combobox устанавливается автоматически !Это происходит просто потому, что в списке поддержки для выпадающего списка теперь есть элемент.
Обратите внимание, что я на самом деле ничего не выбрал.Я просто добавил в список поддержки.Однако, просто добавив в список поддержки, у меня теперь есть SelectedItem, хотя визуально элемент не выбран.Кроме того, если я СЕЙЧАС пытаюсь выбрать элемент из выпадающего списка, SelectedItem НЕ устанавливается снова!
Это сводит меня с ума - у кого-нибудь есть решение?