如何解决Xamarin.Forms.Xaml.XamlParseException

如何解决Xamarin.Forms.Xaml.XamlParseException,xamarin,xamarin.forms,imagesource,Xamarin,Xamarin.forms,Imagesource,我对Xamarin表单和C也是新手。请帮我解决上述问题 我越来越 Xamarin.Forms.Xaml.XamlParseException 当我尝试将所选图像源的字符串格式添加到CandidateDetails.cs时 各页内容如下: 候选细节 公共事件属性更改事件处理程序属性更改; 私有字符串imageBase64; 公共字符串ImageBase64 { 获取{return imageBase64;} 设置 { imageBase64=值; OnPropertyChangedImageBas

我对Xamarin表单和C也是新手。请帮我解决上述问题

我越来越

Xamarin.Forms.Xaml.XamlParseException

当我尝试将所选图像源的字符串格式添加到CandidateDetails.cs时

各页内容如下:

候选细节

公共事件属性更改事件处理程序属性更改; 私有字符串imageBase64; 公共字符串ImageBase64 { 获取{return imageBase64;} 设置 { imageBase64=值; OnPropertyChangedImageBase64; CandImage=Xamarin.Forms.ImageSource.FromStream =>新建MemoryStreamConvert.FromBase64StringimageBase64; } } 私有Xamarin.Forms.ImageSource _candImage; public Xamarin.Forms.ImageSource CandImage { 获取{return\u candImage;} 设置 { _candImage=值; 关于财产变更和图像; } } 公共字符串\u candName; 公共字符串名称 { 获取{return\u candName;} 设置 { 如果_candName==值 回来 _candName=值; OnPropertyChangedCandName; } } 公共字符串_candInst; 公共字符串CandInst { 获取{return\u candInst;} 设置 { 如果_candInst==值 回来 _candInst=值; OnPropertyChangedCandInst; } } 公共字符串_candmailid; 公共字符串CandEmailId { 获取{return\u candmailid;} 设置 { 如果_candmailid==值 回来 _candEmailId=值; OnPropertyChangedCandEmailId; } } 公共字符串_candMob; 公共字符串CandMob { 获取{return\u candMob;} 设置 { 如果_candMob==值 回来 _candMob=值; 关于财产的变化和暴民; } } 私有void OnPropertyChanged[CallerMemberName]字符串propertyName=null { PropertyChanged?.Invokethis,新的PropertyChangedEventArgspropertyName; } 候选etailsmodalpage.xaml.cs

公共部分类候选etailsmodalPage:ContentPage { 流输入; 字符串imageAsString; 公共静态可观测集合_候选者=新可观测集合; 异步无效OnDoneClickedobject发送方,System.EventArgs e { _候选。添加新的候选详细信息 { CandName=stringcandNameEntry.Text, CandEmailId=stringcandEmailId.Text, CandMob=stringcandMobNumber.Text, ImageBase64=imageAsString }; wait Navigation.PopModalAsync; } 公众候选人的电子邮件地址 { 初始化组件; pickPhoto.Clicked+=异步发送方,args=> { 如果!CrossMedia.Current.ISPickPhotosSupported { 等待显示AlertPhotos不受支持,:未授予照片权限,确定; 回来 } var file=await CrossMedia.Current.PickPhotoAsyncnew Plugin.Media.Abstractions.PickMediaOptions { PhotoSize=Plugin.Media.Abstractions.PhotoSize.Medium }; 如果文件==null 回来 输入=file.GetStream; 字节[]缓冲区=新字节[16*1024]; 使用MemoryStream ms=新MemoryStream { int-read; 而read=input.Readbuffer,0,buffer.Length>0 { Writebuffer女士,0,已读; } imageAsString=Convert.ToBase64Stringms.ToArray; } //image.Source=ImageSource.FromStream=>newmemoryStreamConvert.FromBase64StringimageAsString; image.Source=ImageSource.FromStream=> { var stream=file.GetStream; 归档、处理; 回流; }; }; } } 候选etailsmodalpage.xaml

以下是xaml页面的后端,我将在其中显示候选数据displayPage.xaml.cs

candidateListView.ItemsSource=CandidateDetailsModalPage.\u候选人; 候选显示页


你在一篇本应成为原始报告一部分的评论中说:

这是导致异常无法分配属性ImageSource的错误:属性不存在,或不可分配,或值和属性之间的类型不匹配

实际上,Image没有ImageSource属性,而是ImageSource类型的Source属性

公共ImageSource源{get;set;} 所以你的Xaml应该是

图像x:Name=candImage源={Binding Path=candImage}/>
XamlParseException是XAML中的错误,而不是C中的错误。请发布相关的XAML。请尝试从绑定表达式中删除Path=,这是不必要的。否则,请参阅以了解如何启用XAML编译,这将有助于缩小错误原因。@Jason在运行时引发错误Xamarin.Forms.XAML.XamlParseException
当我按下“完成”按钮时。当我尝试将ImageSource添加到ObservableCollection时发生此错误。之前我只处理文本条目时,代码运行良好。正如我之前所建议的,启用XAML编译可能会帮助您缩小范围。@AjayNair属性不是ImageSource,而是Source在ListView ItemTemplate中更改此属性。