ローカライズされた代表的な文字列を使用して、列挙型のメンバーを入力したいComboBoxがあります。これを行う標準的な方法は、列挙型の値をキーとして、テキストを値としてコードビハインドで辞書を作成し、ItemsSourceをそれに設定することです。しかし、そうすると、セクシーなMarkupExtensionを使用できなくなります。そこで、XAMLでこれを実行したいと思います。簡単だと思いました。これが私が持っているものです:
<ComboBox x:Name="cmbNewTabPos"
DisplayMemberPath="Content"
SelectedValue="{Binding Path=NewTabPosition}"
SelectedValuePath="Tag">
<ComboBoxItem
Content="{qt:Resx Key=SomeKey, Index=0}"
Tag="{x:Static qt:TabPos.Left}"/>
<ComboBoxItem
Content="{qt:Resx Key=SomeKey, Index=1}"
Tag="{x:Static qt:TabPos.Right}"/>
<ComboBoxItem
Content="{qt:Resx Key=SomeKey, Index=2}"
Tag="{x:Static qt:TabPos.Leftmost}"/>
<ComboBoxItem
Content="{qt:Resx Key=SomeKey, Index=3}"
Tag="{x:Static qt:TabPos.Rightmost}"/>
</ComboBox>
それはほとんど機能します。ドロップダウンが正しく入力され、バインディングが機能しています。ドロップダウンをプルダウンすると、選択した値が表示されますが、コンボボックスのボックス部分は何をしても空白のままです。私はここで何が間違っているのですか?