Как разделитель может быть добавлен между объектами в ItemsControl

Я должен отобразить список чисел от набора в Управлении Объектами. Таким образом, объекты: "1", "2", "3".

Когда они представляются, мне нужны они разделенный запятой (или что-то подобное). Таким образом, вышеупомянутые 3 объекта были бы похожи на это: "1, 2, 3".

Как я могу добавить разделитель к отдельным объектам, не лавируя один на конце списка?

Я не застреваю при использовании ItemsControl, но это - то, что я начал использовать.

57
задан Agustin Meriles 16 March 2018 в 14:58
поделиться

2 ответа

<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, которое не имеет предыдущего источника относительных данных.

106
ответ дан 24 November 2019 в 19:25
поделиться

Я решил, что должен дать решение, которое у меня получилось.

В итоге я привязал свою коллекцию элементов к тексту TextBlock и использовал преобразователь значений для преобразования связанной коллекции элементов в форматированную строку.

1
ответ дан 24 November 2019 в 19:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: