MvvmCross Xamarin.Forms使用PictureChooser绑定图片时类找不到问题
编译报错找不到MvxInMemoryImageValueConverter类的解决方案
1. 修正命名空间引用
MvxInMemoryImageValueConverter 并不属于 MvvmCross.Forms.Converters 命名空间,实际存放在 MvvmCross.Converters 下,补充对应using引用即可:
using MvvmCross.Converters; using MvvmCross.Forms.Converters; namespace DAA.UI.NativeValueConverters { public class NativeInMemoryImageValueConverter : MvxNativeValueConverter<MvxInMemoryImageValueConverter> { } }
2. 检查NuGet包安装情况
如果补充命名空间后仍报错,确认你的DAA.UI项目已安装对应版本的MvvmCross核心包,缺少的话直接在NuGet包管理器中安装即可。
3. 轻量备选方案:自行实现转换器
如果不想依赖MvvmCross内置转换器,可以直接自己实现byte[]转ImageSource的值转换器,无需依赖Mvx相关组件:
using System; using System.Globalization; using System.IO; using Xamarin.Forms; namespace DAA.UI.NativeValueConverters { public class ByteArrayToImageSourceConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is byte[] bytes && bytes.Length > 0) { return ImageSource.FromStream(() => new MemoryStream(bytes)); } return null; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }
修改App.xaml中转换器的声明即可正常使用:
<nativeValueConverters:ByteArrayToImageSourceConverter x:Key="InMemoryImage"/>
内容的提问来源于stack exchange,提问作者pencilno2
相关产品推荐
相关产品推荐

