私は WPF を使用しており、ビューにコンボボックスがあります。私の要件は、名前のリスト (0 から n 要素の範囲) とローカライズ可能な文字列 "Dummy Name" をコンボボックスに表示することです。そこで、コンボボックスの ItemsSource を 2 つの異なるソース (「names」と呼ばれる文字列のリスト + ローカライズされた文字列「Dummy Name」) から取得します。これはすべてうまくいきます。すべての要素が適切に表示されます。WPFでの私の定義は次のとおりです。
<CollectionViewSource Key="NamesSource" Source="{Binding Context.Data.Names}" />
<ComboBox HorizontalAlignment="Stretch" VerticalAlignment="Top" SelectedItem="{Binding Person.LastName}">
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem Content="{Static res:Labels.DummyName_Combobox_Selection}"/>
<CollectionContainer Collection="{Binding Source={StaticResource NamesSource}}" />
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
CollectionViewSource はリソース ディクショナリの一部ですが、省略しました。問題は ComboBoxItem 要素にあります。
コンボボックスで選択すると、「Dummy Name」ではなく「Combobox: Dummy Name」という文字列が Person.LastName に割り当てられます。
コンボボックスの SelectedMemberPath 属性を「Content」に設定しても機能しません (Names の文字列に Content プロパティがないためだと思います)。
「コンボボックス:ダミー名」ではなく、コンボボックスで「ダミー名」が選択されているときに、「ダミー名」をPerson.LastNameに割り当てるにはどうすればよいですか?