【发布时间】:2017-10-15 18:35:29
【问题描述】:
我正在尝试使用带有 MvvmCross 的值转换器更改 iOS 标签的文本颜色。这是代码的一点点(在Core项目中):
public class BoolToColorValueConverter
: MvxValueConverter<bool, object>
{
protected override object Convert(bool value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
MvxColor mvxColor = null;
if(value)
mvxColor = new MvxColor(255, 0, 0);
else
mvxColor = new MvxColor(0, 0, 0);
var nativeColorConv = Mvx.Resolve<IMvxNativeColor>();
return nativeColorConv.ToNative(mvxColor);
}
}
然后,在我的绑定上:
this.CreateBinding(LabelName).For(s => s.TextColor).To((MyViewModel vm) => vm.BooleanPropertyThatChangesAtSomePoint).WithConversion("BoolToColor").Apply();
但由于某种原因,当布尔属性从 true 更改为 false 时,我看到绑定到该属性的其他字段正确更改,但标签的文本颜色没有。
我看过@slodge 视频、教程、下载的 git 示例,但仍然无法使其正常工作。我认为这与转换器没有返回正确的值有关,因为我设置了断点并触发了转换器。有什么想法吗?
【问题讨论】: