我有两个组合框。它们都绑定到ObservableCollections
ViewModel 中的两个不同的项,当 ComboBox1 中的选定项发生更改时,ComboBox2 将使用不同的集合进行更新。绑定工作得很好,但是,我希望第二个 ComboBox 始终选择其集合中的第一个项目。最初,它可以工作,但是,当 ComboBox2 中的源和项目更新时,选择索引更改为 -1(即不再选择第一个项目)。
为了解决这个问题,我SourceUpdated
向 ComboBox2 添加了一个事件,该事件调用的方法将索引更改回 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;
}
}
任何帮助表示赞赏。