首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataTemplateSelector CreateContent throws

DataTemplateSelector CreateContent throws
EN

Stack Overflow用户
提问于 2018-04-13 21:40:24
回答 1查看 1.9K关注 0票数 2

我正在制作一个定制的可水平滚动的ListView类型控件,我遇到了一个我无法解释的问题,而且我不能百分之百肯定这个问题与我的代码是一致的,除非我误解了什么。

我已经把这个问题提炼成了我可以在https://github.com/sparkeh9/XamarinFormsListViewIssue上找到的最简单的形式。

因此,我有一个HorizontalListView控件,它使用一个非常简单的数据模板选择器(没有逻辑,返回一个数据模板)。

见XAML截图

见模板选择器屏幕截图

我的问题是,当我使用模板选择器时,当调用ItemTemplateSelector.CreateContent()以开始基于模板生成UI控件时,它会抛出一个异常见异常截图,声明LoadTemplate属性不应该为null。我查看了基类,发现这个属性是一个私有的Func<object>,只能通过调用特定的构造函数从外部设置。

如果我在XAML中指定了一个文字项模板,那么所有内容都会按预期工作,例如:

代码语言:javascript
复制
<controls:HorizontalListView.ItemTemplate>
    <DataTemplate>
        <Label Text="test"></Label>
    </DataTemplate>
</controls:HorizontalListView.ItemTemplate>

编辑:回答了我自己的问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-15 22:37:59

我知道了我做错了什么--如果类型是DataTemplateSelector,那么您必须首先通过调用ItemTemplateSelector.SelectTemplate( item, null )生成一个模板,然后您可以调用CreateContent()

比较

我承诺这样做是为了证明我的意思:https://github.com/sparkeh9/XamarinFormsListViewIssue/commit/f2f0d807d2d463d1fe9e6a89f0d3c0c7676a0761

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49825489

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档