項目をコンマで区切ってリストする ItemsControl があります。コードは次のとおりです。
<ItemsControl ItemsSource="{Binding MyItems}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text=", "
Name="commaTextBlock"/>
<TextBlock Text="{Binding}"/>
</StackPanel>
<!-- Hide the first comma -->
<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>
結果は次のようになります: Item1、Item2、Item3
さて、ItemsPanelTemplate として StackPanel の代わりに WrapPanel を使用して同じことをしたいと思います。私はそれをテストしましたが、細部を除いて正常に動作します。次のようなことを行います。
アイテム1、アイテム2
、項目 3
もちろん、これはコンマが各要素の前にあり、最初の要素を非表示にしているためです。各要素の後にコンマを置き、最後の要素を非表示にしたいので、結果は次のようになります。
アイテム1、アイテム2、
アイテム3
NextData のようなものがあれば非常に簡単ですが (そのため、PreviousData の代わりにこれにバインドします)、残念ながらそのようなものは存在しません (または見つかりませんでした)。この問題を解決する方法を知っている人はいますか?
ありがとう