使用MvxListView和MvvmCross的多选列表视图

时间:2016-07-29 06:54:01

标签: android xamarin xamarin.android mvvmcross mvxlistview

我有一个带多选模式的MvxListView。我想切换其点击的项目颜色。如果它是列表视图,那么我可以通过视图上的代码来完成它。但是我如何在MVVMCross中完成相同的任务呢?因为MvxListView Itemclick是在View Model上绑定的,所以我们没有得到点击项目对象。请帮忙

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用ValueConverter和插件MvvmCross.Plugin.Color(可以在NuGet中找到)。

ValueConverter可以将Boolean翻译为Color,例如:

public class BlackOrBlueColorValueConverter : MvxColorValueConverter<bool>
{
    protected override MvxColor Convert(bool value, object parameter, CultureInfo culture)
    {
        if (value)
            return MvxColors.Black;
        else
            return MvxColors.Blue;
    }
}

在绑定到Selected

的类中创建属性MvxListView
private bool _selected
public bool Selected
{
    get
    {
        return _selected;
    }
    set { _selected = value; RaisePropertyChanged(() => Selected); }
}

Axml

中绑定该属性
local:MvxBind="BackgroundColor BlackOrBlueColor(Selected);"

ItemClickCommand上将属性Selected设置为falsetrue,颜色会发生变化。

有关值转换器的详细信息,请查看MvvmCross ValueConverters