gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 20:16:51 25 4
gpt4 key购买 nike

我正在尝试将我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com