【发布时间】:2015-04-01 22:23:05
【问题描述】:
我有自定义的 FrameworkElement(显示 3D 模型,并允许控制相机),我需要同时显示这种类型的多个项目(它们应该是重叠的)。项目存储在列表中。 现在,我可以通过简单地在 Grid 中放置几个 ContentControls 并使用我的 FrameworkElements 作为内容来实现这一点。而且效果很好。但是,任何为自定义元素数量实现该结果的尝试都失败了。我尝试使用 ItemsControl,但它不起作用。 有没有方便的方法来显示源列表中的多个项目,将它们放在一个位置?
更新
Canvas 和 ItemsControl 根本不适合我。即使我只是将单个元素移到那里。 也就是说,
<ContentControl Content="{Binding DrawableElements[0]}"></ContentControl>
效果很好,但是
<ItemsControl>
<ContentControl Content="{Binding DrawableElements[0]}"></ContentControl>
</ItemsControl>
根本不起作用,但这是非常基本的方法。帆布也是如此。我不知道,如果我用对了,但我就是不明白,为什么不想显示带有单个元素的简单 ItemsControl。
更新 #2
如果我有具有某些属性的类,其中包含 FrameworkElement,那么使用此类实例列表的 ItemsControl 将与除 FrameworkElement 之外的任何属性一起正常工作。现在我真的无法理解发生了什么。
注意: 我正在尝试遵循 MVVM 模式,因此代码对 UI 应该没有直接影响。这就是我首先选择 ContentControl 的原因。否则我可能会简单地将新的 FrameworkElements 添加为简单 Grid 的子项。
【问题讨论】:
标签: c# wpf contentpresenter