发生了什么 :
我要做的是 :
CONVERTER
:CruiseShipIndicatorValueConverter.cs
public class CruiseShipIndicatorValueConverter : MvxValueConverter<bool, int>
{
protected override int Convert(bool value, Type targetType, object parameter, CultureInfo culture)
{
if (value)
{
return Resource.Drawable.up_arrow;
}
else
{
return Resource.Drawable.down_arrow;
}
}
protected override bool ConvertBack(int value, Type targetType, object parameter, CultureInfo culture)
{
return base.ConvertBack(value, targetType, parameter, culture);
}
}
XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="35dp"
android:gravity="center"
android:layout_gravity="center"
android:padding="2dp">
<MvxImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginRight="2dp"
android:gravity="center"
android:layout_gravity="center"
local:MvxBind="DrawableId QuesSeriesIndicator(questionState)" />
</LinearLayout>
答案 0 :(得分:1)
非常简单。这可以通过单值转换器轻松完成。 我们可以通过现有的转换器定义来实现这一目标,而不是使用元组或任何其他通用数据类型。
例如:
public class CruiseShipIndicatorValueConverter : MvxValueConverter<bool, int>
{
protected override int Convert(bool value, Type targetType, object parameter, CultureInfo culture)
{
if (value)
{
return Resource.Drawable.up_arrow;
}
else
{
return Resource.Drawable.down_arrow;
}
if (parameter is bool)
{
bool value2 = (bool)parameter;
// Here this value2 is the second boolean value.
}
}
protected override bool ConvertBack(int value, Type targetType, object parameter, CultureInfo culture)
{
return base.ConvertBack(value, targetType, parameter, culture);
}
}
其中MvxValueConverter,bool(questionState1)是&#34;值&#34;在Convert和int是Convert中的返回类型。对于第二个bool值(questionState2),在&#34;参数&#34;中获取作为类型对象。
对于绑定,我们必须发送
local:MvxBind="DrawableId QuesSeriesIndicator(questionState1, questionState2)"
答案 1 :(得分:0)
您可以尝试将两个布尔值封装到类中或使用元组。
您的示例类实现将是这样的。
public class CruiseShipIndicatorValueConverter : MvxValueConverter<Tuple<bool, bool>, int>
详细了解元组here。