У меня есть ListView
, который использует GridView
для отображения нескольких столбцов данных.Соответствие вертикальной компоновке в разных ItemsControls
В двух столбцах есть шаблоны ячеек, содержащие ItemControl
, чтобы показать небольшую коллекцию в каждой ячейке.
Проблема заключается в том, что вертикальный размер ItemControl
s не связан каким-либо образом, поскольку они находятся в разных ячейках, и поэтому они не выстраиваются в линию.
например: (заметьте это ОДИН РЯД в родительском ListView)
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.
Может ли кто-нибудь предложить лучшее решение?
Вы имеете в виду 'горизонтальный StackPanel' не 'вертикали'? – Phil
@Phil: Извините, мозговой пердит. Я имел в виду ItemsControl. Редактировал. (Думал о стеке, поскольку ItemsControl стекает по умолчанию по умолчанию) – GazTheDestroyer
Итак, есть один режим для каждого бла? Если да, то почему ваша модель взгляда не выглядит так? – Phil