私はListView
それを使用してGridView
データのいくつかの列を表示しています。
ItemControl
2つの列には、各セルの小さなコレクションを表示するための'sを含むセルテンプレートがあります。
私が抱えている問題は、sの垂直方向のサイズはItemControl
、異なるセルにあるため、まったく接続されておらず、したがって、それらが整列していないことです。
例:(これは親リストビューの1行であることに注意してください)
これまでのXAML:
<ListView Margin="6,6,6,0" ItemsSource="{Binding Controllers}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem" >
<Setter Property="VerticalContentAlignment" Value="Top" />
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<!-- snip other columns -->
<GridViewColumn Header="Mode">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Modes}" DisplayMemberPath="Name"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Parameters">
<GridViewColumn.CellTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Modes}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Blah:" Margin="5,0"/>
<ComboBox>
<ComboBoxItem>Hello</ComboBoxItem>
</ComboBox>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
私が最初に考えたのは、のとしてグリッドを使用するItemsPanel
ことItemsControls
でした。そのため、行でSharedSizeScopeを使用してそれらを並べることができました。ただし、ItemsControlによって動的に作成されたアイテムを特定のグリッド行に割り当てる方法がわかりません。
誰かがより良い解決策を提案できますか?