我按预期得到了这个 cbxJobPosition_SelectionChanged 触发。问题是当外部方法尝试设置cbxJobPosition 时。
cbxJobPosition 与JobPosition类型的对象列表进行数据绑定:
JobPositionID:1,JobPositionName:经理
JobPositionID:2,JobPositionName:员工
JobPositionID:3,JobPositionName:第三方
这是 XAML:
<ComboBox Cursor="Hand" DataContext="{Binding}" ItemsSource="{Binding}"
FontSize="13" Name="cbxJobPosition"
SelectedValuePath="JobPositionID" DisplayMemberPath="JobPositionName"
SelectedIndex="0" Width="233" Height="23"
SelectionChanged="cbxJobPosition_SelectionChanged" />
在 UserControl_Loaded 方法中,它从数据库中读取工作列表并尝试设置特定的工作职位“第三方”:
//calls cbxJobPosition_SelectionChanged and passes the correct SelectedValue within
cbxJobPosition.SelectedIndex = 3;
//calls cbxJobPosition_SelectionChanged and but won't pass the correct SelectedValue within
cbxJobPosition.SelectedValue = "3";
如您所见,当处理自动重定向到 cbxJobPosition_SelectionChanged 时,当您在 cbxJobPosition_SelectionChanged 事件中进行调试时,上述每个语句的 SelectedValue 属性将具有不同的值。
有谁知道这种差异是否是预期的,我是否遗漏了什么或者可能是一个错误?