在XAML中使用ResourceDictionary时,Xamarin.Forms应用程序挂起

时间:2017-08-02 11:28:45

标签: c# xaml xamarin.forms xamarin.forms.listview

我有Xamarin.Forms应用程序,我想在ListView上显示本地数据库中的图像。图像以Base64编码存储,因此我需要使用一个转换器,例如在此question的anwser中描述。我面临的问题是,如果我在 ContentPage 标记后面的XAML页面中包含 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中运行应用程序,该页面上的OnAppearing()方法永远不会到达我的断点。

我应该在其他地方插入 ContentPage.Resources 代码还是我遗漏了什么?

我使用的是Xamarin版 4.5.0.486

1 个答案:

答案 0 :(得分:0)

请仔细检查ConverterBase64ImageSource类实际上是否在MyApp命名空间中?例如,不是MyApp.Converters,那么它就不会起作用。

它不应该挂起,但是给你一个错误,但谁知道呢!