コレクション内の項目を表示するための ViewBox を持つ WPF アプリがあり、結果を 2 列のグリッドで表示します。
私がやりたいことは、コレクション内のアイテムの数に応じて、列の数を変更することです。たとえば、リスト内のアイテムが 10 個未満の場合、それらを 1 列だけに表示します。リストに 10 個のアイテムがある場合、それらを 2 列で表示します。リストに 20 個の項目がある場合、3 列を表示します。
これが私が現在持っているものです:
<Viewbox>
<ItemsControl ItemsSource="{Binding myCollection}" Style="{DynamicResource myStyle}" />
</Viewbox>
myStyle が現在定義しているものは次のとおりです。
<Style x:Key="myStyle" TargetType="{x:Type ItemsControl}">
<Setter Property=ItemsControl.ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<UniformGrid Columns="2" />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
</Style>
このコードを上記の要件に合わせて機能させるにはどうすればよいですか? ありがとう。