Ich habe ListView
, die eine GridView
verwendet, um mehrere Datenspalten anzuzeigen.Übereinstimmendes vertikales Layout in verschiedenen ItemsControls
Zwei der Spalten haben Zellenvorlagen, die ItemControl
enthalten, um eine kleine Sammlung in jeder Zelle anzuzeigen.
Das Problem, das ich habe, ist, dass die vertikale Größe der ItemControl
s in keiner Weise verbunden ist, da sie in verschiedenen Zellen sind, und daher nicht in einer Reihe.
zB: (beachten Sie, dies ist ONE ROW in der übergeordneten Listenansicht)
XAML bisher:
<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>
Mein erster Gedanke war ein Raster wie die ItemsPanel
zu verwenden von der ItemsControls
, so könnte ich SharedSizeScope in den Zeilen verwenden, um sie auszurichten. Ich kann jedoch keine Möglichkeit sehen, Elemente, die dynamisch von ItemsControl erstellt werden, bestimmten Rasterzeilen zuzuweisen.
Kann jemand eine bessere Lösung vorschlagen?
Meinen Sie nicht 'horizontalen Stackpanel' nicht 'vertikale'? – Phil
@Phil: Entschuldigung, Gehirn Furz. Ich meinte ItemsControl. Habe bearbeitet. (Hat an stackpanel gedacht, da ItemsControl Kinder standardmäßig stapelt) – GazTheDestroyer
Also gibt es einen Modus für jeden Blah? Wenn ja, warum zeigt Ihr View-Modell das nicht so an? – Phil