如何在Xamarin.Forms中使用TimeSpan字符串格式?

4

我在Xamarin.Forms中的代码中使用了一个Label,如下所示:

var label = new Label();
label.SetBinding(Label.TextProperty, new Binding("Time", stringFormat: "{}{0:hh\\:mm}", mode: BindingMode.TwoWay, source: this));

但是这会返回错误:

System.FormatException: 输入的字符串格式不正确。

但是这在 Xaml 中可行:
 <Label Text="{Binding StartTime, StringFormat='{}{0:hh\\:mm}'}}"/>

我该如何在Xamarin.Forms中对TimeSpan类型的绑定使用字符串格式化?

这个对你有用吗 https://dev59.com/uW455IYBdhLWcg3wD_yZ#4563472?看起来你不需要 {},因为这些是特定于XAML的。 - Zein Makki
@user3185569 我需要的是代码,而且是针对Xamarin.Forms的。 - JKennedy
你尝试过移除 {} XAML 转义字符串吗? - Zein Makki
2个回答

4

Xamarin Forms使用的所有基本的string.Format选项,通常都可以使用。所以对于日期时间,stringFormat变量看起来像这样:

"{0:MM/dd/yy H:mm:ss zzz}"

您的格式化字符串中额外的括号似乎有些不合适。您可以尝试以下代码来实现您的目标:
@"{0:hh\:mm}"

0

StringFormat='{}{0:hh\\:mm\\:ss}'

(程序相关)

你好,欢迎来到SO!虽然这段代码可能回答了问题,但提供关于它如何以及为什么解决问题的额外上下文会提高答案的长期价值。请阅读tour如何撰写优秀答案? - Tomer Shetah

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接