我在我的PCL中定义了一个像这样的值转换器:
class EmployeeToStringValueConverter : MvxValueConverter<Employee, string>
{
protected override string Convert(Employee value, Type targetType, object parameter, CultureInfo culture)
{
return value.ToString();
}
}
我在Android .axml布局中使用它,如下所示:
local:MvxBind="Text EmployeeToString(SearchResult)"
(SearchResult
在ViewModel中定义为公共Employee
属性)
但它不起作用(意思是:如果我在转换器调用中放置一个断点,它永远不会被执行)。
但是,我还定义了以下转换器:
public class NegateBoolValueConverter : MvxValueConverter<bool, bool>
{
protected override bool Convert(bool value, Type targetType, object parameter, CultureInfo culture)
{
return !value;
}
}
我正在使用它:
local:MvxBind="Enabled NegateBool(IsLoggedIn)"
(IsLoggedIn
是ViewModel中的bool
公共属性)
这完全有效。任何想法,以及第一个不起作用的可能会发生什么?
答案 0 :(得分:1)
我相信您在转换器上缺少public
访问修饰符
更改
class EmployeeToStringValueConverter : MvxValueConverter<Employee, string>
到
public class EmployeeToStringValueConverter : MvxValueConverter<Employee, string>
应该这样做。