4

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

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

4

1 回答 1

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转换。


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

于 2013-08-11T04:23:27.677 回答