我有ListView
使用 aGridView
来显示几列数据。
其中两列具有包含ItemControl
's 的单元格模板,以在每个单元格中显示一个小集合。
我遇到的问题是 s 的垂直大小ItemControl
没有以任何方式连接,因为它们位于不同的单元格中,因此它们没有对齐。
例如:(注意这是父列表视图中的一行)
到目前为止的 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 动态创建的项目分配给特定 Grid 行的方法。
任何人都可以提出更好的解决方案吗?