MvvMCross与格式字符串绑定

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

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

我很快浏览了代码,但找不到任何东西。 我知道可能会发生信息丢失,这会破坏双向绑定,但我只想要这个来显示值。 我的具体案例是DateTime的绑定。

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

我的愿望,例如:

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

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

应该花大约2分钟写…在这里,我会certificate:

 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秒;)