我正在尝试为我的 MvvmCross 项目创建一个自定义转换器。我从 MvxBaseVisibilityValueConverter 继承,只是实现了 Convert 方法。
我是否还需要实施特定于平台的项目,或者是否有办法重用特定于平台的可见性插件?
我正在尝试为我的 MvvmCross 项目创建一个自定义转换器。我从 MvxBaseVisibilityValueConverter 继承,只是实现了 Convert 方法。
我是否还需要实施特定于平台的项目,或者是否有办法重用特定于平台的可见性插件?
最近几天我一直在记录 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
风格的绑定时才能工作(所以不是每个人都喜欢的方法!)