【发布时间】:2017-08-02 11:28:45
【问题描述】:
我有 Xamarin.Forms 应用程序,我想在 ListView 上显示本地数据库中的图像。图像以 Base64 编码存储,因此我需要使用一个转换器,例如在 anwser 中描述的这个question。我面临的问题是,如果我在 XAML 页面中的 ContentPage 标记之后包含 ContentPage.Resources 代码,应用程序将在我的手机上冻结,当我尝试打开该页面。
资源代码:
<ContentPage.Resources>
<ResourceDictionary>
<local:ConverterBase64ImageSource x:Key="CustomImageConverter" />
</ResourceDictionary>
</ContentPage.Resources>
我还在 ContentPage 标签内创建了本地标签:xmlns:local="clr-namespace:MyApp;assembly=MyApp"
我已将 ConvertedBase64ImageSource 类添加到 Page.xaml.cs 文件中,转换器的代码就像上面的 awnser 中提供的代码一样链接的问题。
XAML 代码似乎破坏了我的应用程序中的某些内容,但我没有收到任何错误,只是应用程序变得无响应并且不会打开该页面,而是显示操作系统消息以强制关闭应用程序。我在 VS2015 中以 Debug 模式运行应用程序,并且该页面上的 OnAppearing() 方法永远不会命中我的断点。
我应该在其他地方插入 ContentPage.Resources 代码还是我遗漏了什么?
我使用的是 Xamarin 版本 4.5.0.486
【问题讨论】:
-
您是否在转换器代码中设置了断点?这会被击中吗?
ConverterBase64ImageSource实际上在MyApp命名空间中?例如不是MyApp.Converters? -
呃,就是这样。我使用的是根名称,而不是转换器所在的名称。奇怪的是,我在使用翻译服务时遇到了同样的“错误”,但不知何故有效。你能把你的评论写成anwser,所以我可以接受吗?非常感谢您的帮助:)
-
完成!很高兴你成功了!
标签: c# xaml xamarin.forms xamarin.forms.listview