You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在XAML的ComboBox中添加枚举类型的指定成员子集?

在XAML中为ComboBox添加枚举类型的成员子集

你需要用x:Static标记扩展直接引用枚举的静态成员,这就是等效于构造函数中手动Add操作的XAML写法:

<ComboBox Name="cboState">
    <x:Static Member="core:InvoiceState.Ready" />
    <x:Static Member="core:InvoiceState.Waiting" />
    <x:Static Member="core:InvoiceState.Finished" />
</ComboBox>

为什么你之前的写法无效?

直接写<core:InvoiceState>Ready</core:InvoiceState>是错误的——枚举类型不能通过“元素+文本内容”的方式实例化。枚举的每个成员都是该枚举类型的静态常量实例,必须通过x:Static标记扩展来引用这些静态成员,才能正确加入ComboBox的Items集合。

可选复用方案

如果需要在多个地方复用这个枚举子集,可以把它定义在资源字典中:

<Window.Resources>
    <x:Array Type="core:InvoiceState" x:Key="SelectedInvoiceStates">
        <x:Static Member="core:InvoiceState.Ready" />
        <x:Static Member="core:InvoiceState.Waiting" />
        <x:Static Member="core:InvoiceState.Finished" />
    </x:Array>
</Window.Resources>

<!-- 绑定到资源 -->
<ComboBox Name="cboState" ItemsSource="{StaticResource SelectedInvoiceStates}" />

内容的提问来源于stack exchange,提问作者Jonathan Gilbert

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 11:12:09