我在资源文件夹中有两个图像
1) ImgMsg_Normal.png
2) ImgMsg_Grey.png
in Layout file:
<ImageView
android:id="@+id/imgMsg"
android:src="@drawable/ImgMsg_Normal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxHeight="80dp"
android:maxWidth="80dp"
android:layout_margin="20dp"
android:scaleType="fitCenter"
local:MvxBind =" " />
在代码后面:
加载此页面时,首先显示所述图像:ImgMsg_Normal。
1)如何通过传递图像文件名动态更改图像:ImgMsg_Grey in Local : MvxBind 以上?
谢谢
最佳答案
我们使用转换器来做到这一点。所以绑定(bind)是在一个(例如) bool 值上。如果为真,则转换器返回图像 1,如果值为假,则返回图像 2。
转换器(在核心项目中):
public class MyIconValueConverter : MvxValueConverter<bool, string>
{
protected override string Convert(bool value, Type targetType, object parameter, CultureInfo culture)
{
if(value)
{
return "res:ImgMsg_Normal";
}
else
{
return "res:ImgMsg_Grey";
}
}
}
以及文件中的绑定(bind):
<Mvx.MvxImageView
local:MvxBind="ImageUrl MyBoolProperty, Converter=MyIcon" />
使用上面的代码,我们在显示不同项目的列表中动态更改图标。图标取决于列表中项目的属性。
关于xamarin - 如何在 MvvmCross 中动态更改图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32090067/