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

我在Xamarin Studio中使用MVVM Cross:

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

android:id="@+id/title1"

android:layout_toRightOf="@+id/thumb1"

local:MvxBind="FormattedText Item.Description;"

/>

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

"The header\\n\\nThe sub text"

或其他格式化的字符串.

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

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

解决方法:

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

{

protected override string Convert(float? value, Type targetType, object parameter, CultureInfo culture)

{

return !value.HasValue ? null : string.Format(culture, "{0:C}", value.Value);

}

}

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

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'" />

标签:xamarin,mvvmcross,xml,android,mvvm

来源: https://codeday.me/bug/20191119/2039606.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值