我注意到所描述的绑定方法已过时(?)
附加到该方法的消息是:
[Obsolete("Please use SourceDescribed or FullyDescribed instead")]
因此SourceDescribed
,如果您只想描述源,或者FullyDescribed
如果您想描述源和目标,请使用。
set.Bind(label).For(l => l.Text).SourceDescribed("'Hello ' + SourceText");
或者:
set.Bind(label).FullyDescribed("Text 'Hello ' + SourceText");
既然是双向绑定,那怎么绑定才能转换为ViewModel->View和View->ViewModel呢?
双向转换器同时实现Convert
和ConvertBack
。
例如 - 请参阅:
public class TwoWayConverter : MvxValueConverter<double, string>
{
protected override string Convert(double value, Type targetType, object parameter, CultureInfo culture)
{
return (value*value).ToString();
}
protected override double ConvertBack(string value, Type targetType, object parameter, CultureInfo culture)
{
double doubleValue;
double.TryParse(value, out doubleValue);
return Math.Sqrt(doubleValue);
}
}
来自https://github.com/MvvmCross/MvvmCross-Tutorials/blob/master/ValueConversion/ValueConversion.Core/Converters/Converters.cs
我想知道如何在“名称”下注册转换以便以后重用它
这些名称是通过反射和约定注册的 - 请参阅https://github.com/MvvmCross/MvvmCross/wiki/Value-Converters#referencing-value-converters-in-touch-and-droid中的完整描述
可用转换的列表
MvvmCross 默认不提供很多 - 这些主要是应用程序的东西。
我所知道的唯一内置转换器用于:
所有这些都在https://github.com/MvvmCross/MvvmCross/wiki/Value-Converters#the-mvx-visibility-valueconverters中讨论