簡體   English   中英

將網格添加到ItemsControl的ItemsPanelTemplate

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM