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

XAML数据绑定StringFormat不生效,热重载正常重启失效

问题

尝试通过两个Label展示绑定值+静态文本,预期显示~50% Completed和(stopped),但应用启动后实际显示100和Stopped。仅在微调StringFormat(如改为~{0}% Not Completed)并通过Hot Reload重载后,才能正常显示预期效果,重启应用后问题复现。

相关XAML代码:

<Label
    Text="{Binding Speed, StringFormat=~{0}% Completed}"
    HorizontalOptions="Center"
    FontAttributes="Bold"
    FontSize="Body"
    Margin="0,0,5,0"/>
<Label
    Text="{Binding Status, StringFormat=({0})}"
    HorizontalOptions="Center"
    FontAttributes="Bold"
    FontSize="Body"/>
解决方案

这是XAML解析器对StringFormat的初始加载解析异常,Hot Reload会重新解析格式字符串所以临时生效。只需给StringFormat的格式字符串加上单引号包裹,让解析器正确识别完整格式规则即可:

修改后的代码:

<Label
    Text="{Binding Speed, StringFormat='~{0}% Completed'}"
    HorizontalOptions="Center"
    FontAttributes="Bold"
    FontSize="Body"
    Margin="0,0,5,0"/>
<Label
    Text="{Binding Status, StringFormat='({0})'}"
    HorizontalOptions="Center"
    FontAttributes="Bold"
    FontSize="Body"/>

原理:XAML解析器处理不带引号的StringFormat时,会误将开头的非大括号字符当作绑定表达式的一部分,导致格式规则未被正确应用。添加单引号后,整个内容会被识别为完整的格式字符串,应用启动时就能正常解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 15:55:20