在XAML中如何呈现分隔列表?

5
是否有一种通用的XAML样式或模板技术可以将数据绑定列表渲染为屏幕上的分隔符列表?
想象一下在XAML中输出类似于函数调用声明的内容:foo(a,b,c),其中“a”、“b”和“c”来自数据绑定列表(“foo”也是数据绑定的,但不是参数列表)。
必须将“a”、“b”和“c”元素保留为XAML UI元素,以便它们可以在XAML中进行交互和样式设置。(因此,我认为这排除了简单的字符串连接作为解决方案)
关键点在于要在列表末尾有一个多余的逗号。
这与如何使列表中的第一个和/或最后一个元素与中间元素不同的问题有些相关。我在stackoverflow上看到过一些建议,使用ItemsControl中的ItemsTemplateSelector来测试项目是否是列表中的第一个或最后一个,并返回相应的模板,但问题在于DataTemplateSelector.SelectTemplate无法访问该项所在的列表。你可以通过对特定列表的肮脏处理来破解,但如何以通用的方式实现这一点?
1个回答

4
在WPF中,您可以使用相对源PreviousData进行绑定。如果前一个数据为null,则知道它是列表中的第一项,因此无需添加分隔符。可惜的是,Silverlight不支持此功能,当我有完全相同的要求时,我无法找到一个好的解决方法。最终,我只是设置了一个边距,以使尾随逗号永远不可见。

顺便提一下:当使用ObservableCollection<T>.Move(int,int)重新排序项目时,PreviousData绑定不会更新。 - springy76

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接