[英]Add Grid to ItemsPanelTemplate of an ItemsControl
我想在WPF ItemPanelTemplate
Grid
添加為ItemsControl
ItemPanelTemplate
。
我知道有很多類似的問題。 但是到目前為止,我所看到的所有對象都在談論動態添加行和列,但是它們並沒有很好地覆蓋它(以我的觀點)。
所以我想要的東西可能是最簡單的形式,但是我不知道該怎么做。
我當然知道這行不通。 但這只是為了展示我的想法。
<ItemsControl>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
</Grid>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding ArticleName}" Grid.Row="0" Grid.Column="0" />
<TextBlock Text="{Binding ArticleTradeName}" Grid.Row="0" Grid.Column="1" />
<ListView Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3">
.
.
.
</ListView>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
---------------------------------------- | #1 name | #1 trade name | --------------------------------------- | GridView | | Row1 | | Row2 | | . | | . | | RowN | ---------------------------------------- | #2 name | #2 trade name | ---------------------------------------- | GridView | | Row1 | | Row2 | | . | | . | | RowN | ---------------------------------------- ...
無需更改ItemsPanel
的默認值(StackPanel)。 只需將Grid
放在ItemTemplate本身內即可。 像這樣:
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding ArticleName}" Grid.Row="0" Grid.Column="0" />
<TextBlock Text="{Binding ArticleTradeName}" Grid.Row="0" Grid.Column="1" />
<ListView ItemsSource="{Binding Samples}" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3">
<ListView.View>
<GridView>
.
.
.
<GridView>
</ListView.View>
</ListView>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.