首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有ItemsControl的ItemsPresenter (银灯)

没有ItemsControl的ItemsPresenter (银灯)
EN

Stack Overflow用户
提问于 2011-05-31 18:03:49
回答 1查看 803关注 0票数 2

我创建了一个继承了ItemsControl的控件,而我创建的控件没有一个ItemsPresenter作为模板。相反,我有一个网格。我想列一张这样的清单:

(项目1)

(GridSplitter)

(项目2)

(GridSplitter)

(项目3)

因为我必须在项之间插入我自己的GridSplitter,所以我不能使用ItemsPresenter,让它为我填充UI。

我重写了OnItemsChanged()方法,以便编写添加/删除GridSplitter的逻辑。但是,我仍然需要使用ItemContainerGenerator类为我的项目生成ItemTemplate。

但是,当我的控制模板中没有ItemsPresenter时,ItemContainerGenerator似乎无法工作。当我第一次使用它生成项目时,它会返回一个带有ContentPresenter的DataTemplate。然后我把它插入到我拥有的网格中。但是,屏幕上没有显示任何项目。如果我添加了另一项,当我插入到网格中时,它会抛出一个错误,说明该项已经在可视树中。这就是我认为ItemContainerGenerator没有ItemsPresenter就不能工作的原因。

因此,我试图用ItemsPresenter替换网格。这一次,它使用下划线逻辑来创建项,并显示它应该显示的内容。不过,这不是我想要的。

我想使用ItemContainerGenerator的原因是我需要从我在Xaml中定义的ItemTemplate创建UI元素。

是否有一种方法可以使用我对项目的控制的ItemTemplate生成UI?

EN

回答 1

Stack Overflow用户

发布于 2011-05-31 19:11:17

如果您已经经历了侦听OnItemsChanged和将内容手动添加到网格的麻烦,那么您应该创建一个UserControl而不是使用ItemTemplate,然后将UserControl及其设置为适用对象的DataContext插入到网格中,而不必担心从ItemsControl继承。

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

https://stackoverflow.com/questions/6191600

复制
相关文章

相似问题

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