0

MvxBindableListView を含むメイン ビューがあります。Item テンプレートには、内部に TextViews、ImageView などを含むコンテナとして RelativeLayout があります。

リストにバインドされているデータに基づいて、RelativeLayout の背景色を変更できるようにする必要があります。

それは可能ですか?

4

1 に答える 1

0

MvxColorConverters (Color プラグインを使用) を使用して、色を View プロパティに簡単にバインドできます。

たとえば、1 から 10 までのスコアがあると仮定すると、値に応じてテキスト ビューに色を付けることができます。

public class ScoreToColorConverter : MvxBaseColorConverter
{
    private static readonly MvxColor RedColor = new MvxColor(0xff, 0x00, 0x00);
    private static readonly MvxColor GreenColor = new MvxColor(0x00, 0xff, 0x00);

    protected override MvxColor Convert(object value, object parameter, CultureInfo culture)
    {
        var intValue = (int)value;

        return (intValue > 5) ? RedColor : GreenColor;
    }
}

このコンバーターは、次のようなビューで使用できます。

      <TextView
          style="?OurTextViewBodyStyle"
          android:textColor="@color/red"
          local:MvxBind="{'Text':{'Path':'Score'},'TextColor':{'Path':'Status','Converter':'ScoreToColor'}}" />

View の背景色を設定するには、Background プロパティ自体が読み取り専用であるため、おそらく SetBackgroundColor() メソッドにアクセスする小さなカスタム バインディングを記述する必要があります。

于 2013-01-09T22:35:59.730 に答える