使用MVVM Cross将运行时格式化的XML字符串绑定到Android TextView

使用MVVM Cross将运行时格式化的XML字符串绑定到Android TextView,第1张

概述我在XamarinStudio中使用MVVMCross:我有一个文本视图,我想做这样的事情:<TextViewandroid:id="@+iditle1"android:layout_toRightOf="@+idhumb1"local:MvxBind="FormattedTextItem.Description;"/>其中,Item.D

我在Xamarin Studio中使用MVVM Cross:

我有一个文本视图,我想做这样的事情:

<TextVIEw        androID:ID="@+ID/Title1"        androID:layout_toRightOf="@+ID/thumb1"        local:MvxBind="FormattedText Item.Description;"         />

其中,Item.Description是在运行时设置的,并且等于:

"<b>The header</b>\n\nThe sub text"

或其他格式化的字符串.

我知道如果文本字符串通过使用资源文件是静态的,但是我的文本不是静态的,则可以执行此 *** 作.

如果您给我提供可在AndroID和iOS XML上使用的解决方案,则可加分!

解决方法:

听起来这是学习MvvmCross Value Converters的绝佳时机.
从Wiki:

Value Converters in MvvmCross are used to provIDe mapPings to/from
logical values in the vIEw models and presented values in the user
interface.

在这种情况下,您可以创建一个继承自MvxValueConverter的新类,并重写Convert方法.您将在Convert方法中进行字符串格式化.然后在绑定中可以引用值转换器,MvvmCross将在显示绑定数据之前自动调用值转换器.

这是一个采用浮点数的数值转换器示例.作为输入并输出格式化的货币字符串:

public class CurrencyValueConverter : MvxValueConverter<float?, string>{    protected overrIDe string Convert(float? value, Type targettype, object parameter, CultureInfo culture)    {        return !value.HasValue ? null : string.Format(culture, "{0:C}", value.Value);    }}

然后,您可以在AXML内使用以下语法引用值转换器:

<TextVIEw            androID:layout_wIDth="wrap_content"            androID:layout_height="wrap_content"            androID:layout_marginleft="8dp"            androID:text="[CashOnDeliveryCharges]"            local:MvxBind="Text Currency(CashOnDeliveryCharges), FallbackValue='N/A'" />
总结

以上是内存溢出为你收集整理的使用MVVM Cross将运行时格式化的XML字符串绑定到Android TextView全部内容,希望文章能够帮你解决使用MVVM Cross将运行时格式化的XML字符串绑定到Android TextView所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1079706.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存