创建自定义可视转换器

时间:2013-08-11 03:27:52

标签: mvvmcross

我正在尝试为我的MvvmCross项目创建自定义转换器。我继承自MvxBaseVisibilityValueConverter并只实现Convert方法。

我是否还需要实施特定于平台的项目,还是有办法重用特定于平台的可见性插件?

1 个答案:

答案 0 :(得分:5)

我在过去几天一直在记录ValueConverters - 请参阅https://github.com/slodge/MvvmCross/wiki/Value-Converters

我刚刚将这个示例自定义可见性ValueConverter添加到文章中:


如果您需要创建自己的Visibility ValueConverter,那么MvxBaseVisibilityValueConverter<T>MvxBaseVisibilityValueConverter基类可以帮助解决这个问题 - 例如:

public class SayPleaseVisibilityValueConverter : MvxBaseVisibilityValueConverter<string>
{
    protected override MvxVisibility Convert(string value, object parameter, CultureInfo culture)
    {
        return (value == "Please) ? MvxVisibility.Visible : MvxVisibility.Collapsed;
    }
}

使用这种方法,然后插件基类将在运行时将MvxVisibility转换为合适的本机值 - 因此您只需要将此类类添加到核心PCL项目 - 您不需要添加该类的本机版本 - 而是插件中的基类将负责MvxVisibility -> native Visibility转换。


除了&GT;除了插件的Visibility枚举支持之外,最近的“西藏”绑定更改还为所有平台添加了自定义Visible绑定属性 - 这些只是bool更容易使用 - 他们应该在iOS和Android上“正常工作”,但在Windows平台上,只有切换到“西藏”mvx:Bi.nd绑定方式时才能使用它们(所以不是每个人都喜欢的方法!)