首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实例化ItemsPanelTemplate

实例化ItemsPanelTemplate
EN

Stack Overflow用户
提问于 2010-06-08 22:17:47
回答 1查看 338关注 0票数 1

我正在尝试创建一个在项之间有分隔符的ItemsControl,例如创建导航面包屑的控件。我希望控件是完全泛型的。

我最初的方法是创建扩展ItemsControl,添加一个SeparatorTemplate属性,然后让类在ItemsControl的ItemsHost中添加分隔符。这种方法的问题是,如果您向容器面板添加额外的项,ItemGenerator会变得混乱,这些项的顺序会打乱,无法正确删除。

所以我的第二个计划是创建一个全新的控件来模拟ItemsControl,但是我遇到的问题是我找不到实例化ItemsPanelTemplate的方法。我想提供一个像ItemsControl一样的ItemsPanel属性,但是我不能从该模板创建面板。

有没有人能想出一种方法来实例化ItemsPanelTemplate,或者在不破坏ItemGenerator的情况下向ItemsControl的面板添加控件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-08 23:28:41

嗯,我自己还没有试过,但我以为你会重写GetContainerForItemOverride来获取它。

您可以创建一个新的BreadCrumbItem控件,它是一个模板化的ContentControl,在它的默认模板中有典型的ContentPresenter以及您想要用作默认分隔符的任何东西,所有这些都在GridStackPanel中。

GetContainerForItemOverride生成此BreadCrumbItem的新实例,并将其ContentTemplate设置为来自您的ItemTemplate派生( BreadCrumb控件?)的ItemsControl属性。

您的BreadCrumb控件还将公开您分配给在GetContainerForItemOverride期间创建的BreadCrumbItemBreadCrumbItemStyle属性。

为了完整性,您可能还需要在BreadCrumb控件中实现其他*Container*Override方法。

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

https://stackoverflow.com/questions/2998124

复制
相关文章

相似问题

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