对象到字符串ValueConverter没有被调用

时间:2017-04-28 21:23:48

标签: xamarin xamarin.android mvvmcross

我在我的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公共属性)

这完全有效。任何想法,以及第一个不起作用的可能会发生什么?

1 个答案:

答案 0 :(得分:1)

我相信您在转换器上缺少public访问修饰符

更改

class EmployeeToStringValueConverter : MvxValueConverter<Employee, string>

public class EmployeeToStringValueConverter : MvxValueConverter<Employee, string>

应该这样做。