c# - 通过 MvvmCross View 模型更改 CardView 背景颜色

标签 c# android xamarin mvvmcross android-cardview

我正在尝试将我的 CardView 的背景颜色绑定(bind)到我的 View 模型,但是我从 Mvx 返回了这个错误:

MvxBind:Warning: 11.66 Failed to create target binding for binding CardBackgroundColor

我不确定我是否在 AXML 或 View 模型中使用了错误的属性绑定(bind)。

这是我试图在 View 模型中将其绑定(bind)到的属性:

public int EventEntryBackgroundColour
{
    get
    {
        return IsRead
            ? Resource.Color.yellow
            : Resource.Color.White;
    }
}

我也试过将它用作字符串类型以返回 HEX 中的颜色,但它仍然不起作用。

这是属性,我在 CardView 上设置

cardview:MvxBind="CardBackgroundColor EventEntryBackgroundColour"

如有任何帮助,我们将不胜感激。

最佳答案

我遇到了同样的问题。我的解决方案...

转换器:

public class MessageStatusToColorDrawableConverter : MvxValueConverter<bool, ColorDrawable>
    {
        protected override ColorDrawable Convert(bool value, Type targetType, object parameter, CultureInfo cultureInfo)
        {
            var context = Mvx.Resolve<IMvxAndroidCurrentTopActivity>().Activity; // To get the context of the activity

            return value ? new ColorDrawable(new Color(ContextCompat.GetColor(context, Resource.Color.Pink))) : new ColorDrawable(new Color(ContextCompat.GetColor(context, Resource.Color.Green)));
        }
    }

XML:

<RelativeLayout
        android:id="@+id/relay_archive"
        android:layout_width="10dp"
        android:layout_height="match_parent"
        android:layout_alignParentLeft="true"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        local:MvxBind="Background MessageStatusToColorDrawable(Status)">

我们不能将 Android.Graphics.Color 属性绑定(bind)到 local:MvxBind="BackgroundColor... 因为 BackgroundColor 属性希望您使用使用 MvxColorNativeColor 转换器。 但是,local:MvxBind="Background... 属性需要一个可绘制对象,因此我使用绑定(bind)一个 ColorDrawable

关于c# - 通过 MvvmCross View 模型更改 CardView 背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33685742/

相关文章:

Xamarin pan 手势识别器没有给出准确的坐标

android - MvvmCross,未调用特定于平台的值转换器

C# 生成随机 int - 神秘

c# - 如何使用 iTextSharp 设置 PDF 段落的字体?

C# double 进入 MySql db double 不工作

android - 如何保护 OAuth 消费者 secret 的安全,以及当它被泄露时如何 react ?

android - 在 Android Studio 的 Gradle 中创建 Product Flavor 时,主模块是如何使用的?

android - 如何使用 Intent.ACTION_SEND 将图像发送到 Android 上的 Facebook Messenger?

c# - 反射 MemberInfo 到 Func<T1, T2>

c# - Xamarin Java.exe 以代码 1 退出(Proguard 问题)