行と列の数が可変のテーブルを作成しようとしています。 ItemsControl
をGrid
として持つItemsPanel
でこれを行っています。そして、私はそのItemContainerStyle
を介して各アイテムのGrid.Row
とGrid.Column
を設定できることを知っています。しかし、変更方法がわかりません行と列の数とそれらのサイズ名前でグリッドにアクセスできない場合。
実行時にRowDefinitions
のColumnDefinitions
またはGrid
を変更するにはどうすればよいですかコードビハインドなしでバインディングを使用しますか?
これはXAMLコードです。
<ItemsControl Name="myItemsControl" ItemsSource="{Binding Cells}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid Name="myGrid">
<Grid.RowDefinitions>
<!-- unknown number of rows are added here in run-time -->
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<!-- known number of columns are added here in run-time -->
</Grid.ColumnDefinitions>
</Grid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style.../>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
コードビハインドにRowDefinition
を追加しようとしましたが、myGrid
がItemsPanelTemplate
にアクセスする方法が見つかりませんでした。 ] _。
プログラムで実行時にRowDefinitions
を追加または変更するする方法があるかどうか疑問に思っていますか?
コードビハインドからグリッドにアクセスできる場合は、次のようにすることができます。
var rowDefinition = new RowDefinition();
rowDefinition.Height = GridLength.Auto;
grid.RowDefinitions.Add(rowDefinition);