1

我按预期得到了这个 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 属性将具有不同的值。

有谁知道这种差异是否是预期的,我是否遗漏了什么或者可能是一个错误?

4

1 回答 1

0

JobPositionID 是一个string吗?如果不是,那可以解释为什么它不起作用。在数据绑定级别,WPF 不会自动转换stringint. 我猜它会在您尝试时将框上的选择更改为无。

于 2010-04-22T16:51:16.833 回答