我有一个 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>
它几乎可以工作;下拉列表已正确填充,绑定正在工作,当我下拉下拉列表时,我可以看到选定的值,但无论我做什么,组合框的框部分都保持空白。我在这里做错了什么?