【发布时间】:2018-04-04 05:59:19
【问题描述】:
在我正在工作的 Xamarin.Forms 项目中,我注意到我们将大量整数值绑定到标签文本。例如:
myLabel.SetBinding(Label.TextProperty, nameof(MyViewModel.TotalQty));
其中MyViewModel.TotalQty 是int。
This article from the Xamarin guide 说:
在 Xamarin.Forms 中,绑定不执行任何隐式类型转换,如果需要将非字符串对象显示为字符串,则必须提供类型转换器或使用 StringFormat。
但我正在使用的代码正在运行,因此显然存在隐式类型转换。所以我的结论是文章中的陈述是错误的/过时的,或者该陈述适用于 XAML,但不适用于代码。我在网上找不到答案 - 有人知道吗?
【问题讨论】:
-
如果引用的文本是真的,这将与之前的
Xaml实现有明显的不同。如果源或目标属性没有任何显式的ValueSerializer或TypeConverter属性,我希望使用源或目标类型的TypeConverter,并且任何内置的TypeConverter都应该能够转换为String。String的默认转换器当然可以。无论如何,在 C# 和 Xaml 中构建绑定之间应该没有区别,尽管对于任何类似Trigger的类型都可能存在差异,如果 Xamarin 甚至有这些类型的话。 -
(说清楚,我没有给你答案,但我会饶有兴趣地看这个问题。)
标签: c# xaml xamarin xamarin.forms implicit-conversion