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 に答える