10

如何为绑定添加格式,使用 string.Format 或类似的东西格式化绑定值?我在其他线程中看到,您可以传递一个转换器名称。

  • 是否存在针对此问题的转换器?
  • 在哪里可以看到 MvvMCross v3 的标准转换器列表?

我很快浏览了代码,但找不到任何东西。我知道可能会丢失信息,这会破坏双向绑定,但我只希望它用于显示值。我的具体案例是日期时间的绑定。

bindings.Bind(purchaseDate).To(vm => vm.RegisteredDevice.PurchaseDate);

我的愿望,例如:

bindings.Bind(purchaseDate).To(vm => vm.RegisteredDevice.PurchaseDate).WithFormat("hh:mm");
4

1 回答 1

19

为此,您只需创建一个 StringFormatValueConverter 并使用它的参数作为要使用的格式字符串。

应该需要大约 2 分钟来写......在这里,我会证明这一点:

public class StringFormatValueConverter : MvxValueConverter
{
    public override object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        if (value == null)
            return null;

        if (parameter == null)
            return value;

        var format = "{0:" + parameter.ToString()  + "}";

        return string.Format(format, value);
    }
}

然后

set.Bind(myLabel).To(vm => vm.TheDate).WithConversion("StringFormat", "HH:MM:ss");

1 分 53 秒 ;)

于 2013-05-06T16:08:50.200 回答