0

I would like to display table which when bigger than our container, it will be displayed adjacent, for example:

1 A B C   4 A B C
2 A B C   5 A B C
3 A B C   6 A B C

I used ItemsControl and UniformGrid and I would like to add table header like this:

id title1 title2 title3   id title1 title2 title3
1   A      B      C       4   A      B      C
2   A      B      C       5   A      B      C
3   A      B      C       6   A      B      C

Here is my code:

        <HeaderedItemsControl ItemsSource="{Binding Data}">
            <HeaderedItemsControl.Template>
                <ControlTemplate TargetType="HeaderedItemsControl">
                    <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
                        <DockPanel>
                            <ContentPresenter DockPanel.Dock="Top" ContentSource="Header"/>
                            <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                        </DockPanel>
                    </Border>
                </ControlTemplate>
            </HeaderedItemsControl.Template>
            <HeaderedItemsControl.HeaderTemplate>
                <DataTemplate>
                    <Grid Background="Red" HorizontalAlignment="Stretch">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="1*"/>
                            <ColumnDefinition Width="4*"/>
                            <ColumnDefinition Width="1*"/>
                            <ColumnDefinition Width="1*"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Column="0" Text="Kód"/>
                        <TextBlock Grid.Column="1" Text="Popis"/>
                        <TextBlock Grid.Column="2" Text="Zmetky"/>
                        <TextBlock Grid.Column="3" Text="Oprava"/>
                    </Grid>
                </DataTemplate>
            </HeaderedItemsControl.HeaderTemplate>
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <UniformGrid Columns="2" Rows="15"/>
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Border BorderBrush="#D3D3D3" Margin="3 3 30 3" BorderThickness="0 0 0 1">
                        <Grid x:Name="table">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="1*"/>
                                <ColumnDefinition Width="4*"/>
                                <ColumnDefinition Width="1*"/>
                                <ColumnDefinition Width="1*"/>
                            </Grid.ColumnDefinitions>

                            <TextBlock Grid.Column="0" Text="{Binding Code}"/>
                            <TextBlock Grid.Column="1" Text="{Binding Description}"/>
                            <TextBox Grid.Column="2" Text="{Binding Number1}"/>
                            <TextBox Grid.Column="3" Text="{Binding Number2}"/>
                        </Grid>
                    </Border>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </HeaderedItemsControl>

Now it looks like this:

id             title1        title2         title3  
    1   A      B      C       4   A      B      C
    2   A      B      C       5   A      B      C
    3   A      B      C       6   A      B      C

How to add row with titles? Thanks

bluray
  • 1,875
  • 5
  • 36
  • 68
  • here is the link for exact question works like charm https://stackoverflow.com/questions/3529132/itemscontrol-with-static-header – RackM Jul 11 '18 at 08:31
  • I updated my question. it does not work with UniformGrid – bluray Jul 11 '18 at 10:00

0 Answers0