Uiimageview 如何在MvvmCross中将imageSource绑定到ImageView
我无法将带有转换器的源绑定到Touch项目中的imageview。我在安卓系统中找到了它,以及如何实现它Uiimageview 如何在MvvmCross中将imageSource绑定到ImageView,uiimageview,xamarin,touch,converter,mvvmcross,Uiimageview,Xamarin,Touch,Converter,Mvvmcross,我无法将带有转换器的源绑定到Touch项目中的imageview。我在安卓系统中找到了它,以及如何实现它 public class TypeToSourceConverter : MvxValueConverter<int, string> { protected override string Convert (int value, Type targetType, object parameter, System.Globalization.CultureInfo cul
public class TypeToSourceConverter : MvxValueConverter<int, string>
{
protected override string Convert (int value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var assetName = ((AppConstants.Type)value).ToString ().ToLower ();
return "Images/" + assetName + ".png";
}
}
在我的触摸表视图单元中,我有:
var imageViewLoader = new MvxImageViewLoader (() => historicTypeImageView);
Opaque = true;
this.DelayBind(() => {
var set = this.CreateBindingSet<HistoricCell, Historic>();
set.Bind(imageViewLoader).For(i => i.DefaultImagePath).To(historic => historic.UpdateType).WithConversion("HistoricTypeToSource", 2);
set.Apply();
}
所以,很可能是因为这个弱靶点,它跳过了其他细胞的束缚。。。我正在寻找答案,但还没有找到。实际上找到了这个,但不确定它是否能解决我的问题
谁能帮帮我吗 解决方案正是斯图尔特在这里提出的:
尝试将您的
MvxImageViewLoader
设置为单元格的成员变量,否则它将超出范围并被垃圾收集
这里也是MVVM交叉教程的一部分,演示者在进行实时编码时遇到了相同的问题,并以相同的原因进行了解释:尝试将您的
MvxImageViewLoader
作为单元格的成员变量-否则它将超出范围并以其他方式进行垃圾回收,您还可以编写一个值转换器,使用UIImage自己加载图像。FromFile
参数是一个好的解决方案吗,斯图尔特?嗯,你有没有一个例子来说明如何做一个值转换器,它自己加载的图像也适用于其他平台,这对我来说似乎是最好的解决方案。如果它能工作,并且你对代码感到满意,这是一个非常好的解决方案。非常确定,我很高兴,它也能工作,但只是担心它无法扩展,但还好,现在让我们继续使用此解决方案=)
var imageViewLoader = new MvxImageViewLoader (() => historicTypeImageView);
Opaque = true;
this.DelayBind(() => {
var set = this.CreateBindingSet<HistoricCell, Historic>();
set.Bind(imageViewLoader).For(i => i.DefaultImagePath).To(historic => historic.UpdateType).WithConversion("HistoricTypeToSource", 2);
set.Apply();
}
2014-04-18 14:40:45.902 MyProjectTouch[23081:70b] MvxBind:Warning: 30.59 Weak Target is null in MvxWithEventPropertyInfoTargetBinding - skipping set