我有一个带多选模式的MvxListView。我想切换其点击的项目颜色。如果它是列表视图,那么我可以通过视图上的代码来完成它。但是我如何在MVVMCross中完成相同的任务呢?因为MvxListView Itemclick是在View Model上绑定的,所以我们没有得到点击项目对象。请帮忙
答案 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
设置为false
或true
,颜色会发生变化。
有关值转换器的详细信息,请查看MvvmCross ValueConverters