通过MvxColorValueConverter绑定背景颜色

时间:2013-11-22 09:51:41

标签: android xamarin mvvmcross

我正在尝试将背景颜色绑定到MvxLinearLayout项目中的TextView。

<Mvx.MvxLinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            local:MvxBind="ItemsSource Items"
            local:MvxItemTemplate="@layout/item_item" />

在项目活动中,我通过MvxColorValueConverter绑定TextView背景,它不显示任何背景颜色

 <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="156"
            local:MvxBind="background Value, Converter=ItemValueColor" /> 

但我可以将TextColor绑定到同一个TextView,它可以工作

<TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="156"
                local:MvxBind="TextColor Value, Converter=ItemValueColor" />

MvxColorValueConverter的代码

public class ItemValueColorValueConverter : MvxColorValueConverter
{
    protected override MvxColor Convert(object value, object parameter, CultureInfo culture)
    {
        var intVal = value as int?;

        if (intVal == null)
            return (new MvxColor(0, 0, 0, 150));

        switch (intVal.Value)
        {
            case -1:
                return (new MvxColor(255, 0, 0, 150));
            case 0:
                return (new MvxColor(0, 0, 0, 150));
            case 1:
                return (new MvxColor(0, 255, 0, 150));
        }
        return (new MvxColor(0, 0, 0, 150));
    }
}

我使用的是正确的转换器吗?在MvxLinearLayout中有问题吗?

0 个答案:

没有答案