У меня есть два ComboBoxes на моем представлении. Оба из них связаны с двумя разными ObservableCollections
в ViewModel, и когда выбранный элемент в ComboBox1 изменен, ComboBox2 обновляется с другой коллекцией. Связывание работает очень хорошо, однако я хочу, чтобы второй ComboBox всегда выбирал первый элемент в своей коллекции. Первоначально он работает, однако, когда источник и элементы в ComboBox2 обновляются, индекс выбора изменяется на -1 (т. Е. Первый элемент больше не выбран).ComboBox.SourceUpdated событие не запущено
Чтобы исправить это, я добавил событие ComboBox2 в SourceUpdated
и метод, который событие вызывает изменение индекса обратно на 0. Проблема состоит в том, что метод никогда не вызывается (я поставил точку останова на самой вершине метода и он не попадает). Вот мой код XAML:
<Grid>
<StackPanel DataContext="{StaticResource mainModel}" Orientation="Vertical">
<ComboBox ItemsSource="{Binding Path=FieldList}" DisplayMemberPath="FieldName"
IsSynchronizedWithCurrentItem="True"/>
<ComboBox Name="cmbSelector" Margin="0,10,0,0"
ItemsSource="{Binding Path=CurrentSelectorList, NotifyOnSourceUpdated=True}"
SourceUpdated="cmbSelector_SourceUpdated">
</ComboBox>
</StackPanel>
</Grid>
А в коде-за:
// This never gets called
private void cmbSelector_SourceUpdated(object sender, DataTransferEventArgs e)
{
if (cmbSelector.HasItems)
{
cmbSelector.SelectedIndex = 0;
}
}
Любая помощь приветствуется.