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

MAUI应用中在XAML里定义整数的正确语法是什么?

问题

我正在尝试定义一个转换器,当输入值大于1时返回True。为此我使用了CommunityToolkit中的CompareConverter,代码如下:

<mct:CompareConverter
    x:Key="GreaterThanOneConverter"
    ComparisonOperator="Greater"
    TrueObject="True"
    FalseObject="False">
    <mct:CompareConverter.ComparingValue>
        <x:Int32>1</x:Int32>
    </mct:CompareConverter.ComparingValue>
</mct:CompareConverter>

但这段代码无法编译,报错信息为:

"No property, BindableProperty, or event found for "ComparingValue",
or mismatching type between value and property"

我想知道在XAML中定义值为1的整数的正确语法是什么?
注:我已通过将整数定义为静态资源再引用的方式实现,但这种方式较为繁琐,想了解是否有其他方法。

解决方案

核心问题是你误用了属性名:CompareConverter中用于指定对比值的属性是Value,而非ComparingValue。修正属性名后,有两种简洁方式直接在XAML中指定整数1:

  • 属性语法直接赋值
    XAML会自动将字符串"1"转换为Int32类型,写法最简洁:

    <mct:CompareConverter
        x:Key="GreaterThanOneConverter"
        ComparisonOperator="Greater"
        Value="1"
        TrueObject="True"
        FalseObject="False" />
    
  • 元素语法显式指定类型
    如果需要明确声明类型(避免潜在的类型转换歧义),可以用元素语法:

    <mct:CompareConverter
        x:Key="GreaterThanOneConverter"
        ComparisonOperator="Greater"
        TrueObject="True"
        FalseObject="False">
        <mct:CompareConverter.Value>
            <x:Int32>1</x:Int32>
        </mct:CompareConverter.Value>
    </mct:CompareConverter>
    

这两种方式都能正常编译并实现需求,无需依赖静态资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 02:40:12