私のユーザーコントロールでは、以下のようにコンボボックスを定義しました:
<GroupBox x:Name="stopEventGroup" Header="Test">
<ComboBox x:Name="stopEventCombobox"
ItemsSource="{Binding}"
DisplayMemberPath ="EventVariableComboxItem"
SelectedItem="StopEventVariable"/>
</GroupBox>
StopEventVariable は、私のオブジェクト (ログ) のプロパティです。コード部分では、SelectionChanged イベントをハンドラー メソッドにバインドします。
stopEventCombobox.SelectionChanged += stopEventCombobox_SelectionChanged;
ハンドラー内で、それをオブジェクトのプロパティに割り当てます。
private void stopEventCombobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
selectedVar = (LogPublicVariableView)stopEventCombobox.SelectedItem;
if ((log != null) && (selectedVar != null))
{
log.StopEventVariable = selectedVar.ExposedVariable;
}
}
このコンストラクターのコンストラクターでは、コンボボックスの親のデータ コンテキストをバインドします。
stopEventGroup.DataContext = pvVarList;
今まで、すべてが機能します。今、私の問題はそれです。オブジェクト(ログ)が値を保存した後、次にこのユーザーコントローラーを表示するときに、コンボボックスにこの値を自動的に表示させたいのですが、ユーザーコントローラーのコンストラクターで以下のコードでそれを実行しようとしましたが、動作しません:</ p>
stopEventCombobox.SelectedItem = log.StopEventVariable;
割り当て後、stopEventCombobox.SelectedItem はまだ null です。