一尘不染

如何在ItemsControl中的项目之间添加分隔符

c#

我需要在Items控件中显示集合中的数字列表。因此,这些项目是:"1", "2", "3"

渲染它们时,我需要用逗号(或类似的东西)分隔它们。因此,以上3个项目如下所示:"1, 2, 3"

如何在各个项目之间添加分隔符,而不在列表末尾添加一个分隔符?

我并没有坚持使用ItemsControl,但这就是我开始使用的东西。


阅读 202

收藏
2020-05-19

共1个答案

一尘不染

<ItemsControl ItemsSource="{Binding Numbers}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <!-- could use a WrapPanel if more appropriate for your scenario -->
            <StackPanel Orientation="Horizontal"/>
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock x:Name="commaTextBlock" Text=", "/>
                <TextBlock Text="{Binding .}"/>
            </StackPanel>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding RelativeSource={RelativeSource PreviousData}}" Value="{x:Null}">
                    <Setter Property="Visibility" TargetName="commaTextBlock" Value="Collapsed"/>
                </DataTrigger>
            </DataTemplate.Triggers>
        </DataTemplate>

    </ItemsControl.ItemTemplate>
</ItemsControl>

我之所以提出您的问题,是因为我在Silverlight中寻找解决方案,该解决方案没有以前的数据相对来源。

2020-05-19