如何向XAML网格添加额外的控件?

时间:2013-05-07 02:46:02

标签: c# xaml windows-store-apps

我有一个绑定到ObservableCollection的Grid。我希望在网格中有一个额外的项目,使其显示为另一个图块,但实际上是,例如,一个按钮。微软的财务应用程序展示了我想要的效果(截图如下)。目标是让最终的瓷砖本身不是该集合的成员,但与任何其他项目一样位于网格中。

a similar question的最佳答案提到了CompositeCollection,但是CompositeCollection似乎不适用于Win8应用程序。

Screenshot of Microsoft Finance app showing an extra grid item

2 个答案:

答案 0 :(得分:1)

您可以随时在ObservableCollection的末尾添加和添加额外的项目。

  • 您可以在视图模型中处理此异常:在加载过程中添加它,如果您在应用中支持,则可以正确处理添加和删除其余项目。 (这是我们在其中一个项目中采用的方法。)
  • 或者您可以从ObservableCollection派生自己的类来处理所有这些并重复使用它。

要使额外项目与其他项目显示不同,您可以使用DataTemplateSelector并根据类型名称或其他属性选择正确的模板,以区分额外项目与其他项目。

答案 1 :(得分:0)

这是一个示例项目,它显示了标准项模板(GridView,带有ListView用于捕捉视图),它向ItemsSource添加了一个“+”内容项,用于应用程序中的“添加新项”操作。

"Add New Item" item in GridView / ListView