How to Add the contents of several WPF C# ListView in another ListView

Marino Liranzo 81 Reputation points
2021-11-01T23:14:35.45+00:00

I have several WPF c # ListView controls in which I have tables of values arranged in rows and columns, I would like to know how to place the content of all the ListViews in a different listview.

Developer technologies | Windows Presentation Foundation
{count} votes

3 answers

Sort by: Most helpful
  1. Marino Liranzo 81 Reputation points
    2021-11-02T02:49:04.877+00:00

    Thanks for your attention, the data types are mostly float, housed in list <>, List <List <>> and are displayed through a FlowDocumentScrollViewer control.

    0 comments No comments

  2. Hui Liu-MSFT 48,711 Reputation points Microsoft External Staff
    2021-11-02T06:59:33.743+00:00

    If you want to bind a nested List to a ListView, you could try to refer to the following code. If I misunderstood your question, please let me know.

    The code of xaml:

     <Window.Resources>  
            <DataTemplate x:Key="OrdersTemplate">  
                <StackPanel>  
                    <TextBlock Text="{Binding OrderId}" />  
                    <ListView HorizontalAlignment="Stretch"  HorizontalContentAlignment="Stretch"  
                   MinWidth="100"  MinHeight="25"   ItemsSource="{Binding Items}"  >  
                        <ListView.View>  
                            <GridView>  
                                <GridViewColumn Header="Price" DisplayMemberBinding="{Binding Price}"/>  
                                <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>  
                            </GridView>  
                        </ListView.View>  
                    </ListView>  
                </StackPanel>  
            </DataTemplate>  
            <DataTemplate x:Key="CustomersTemplate">  
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch">  
                    <ListView ItemsSource="{Binding Orders}" HorizontalContentAlignment="Stretch"  
                              ItemTemplate="{StaticResource OrdersTemplate}">  
                    </ListView>  
                </StackPanel>  
            </DataTemplate>  
        </Window.Resources>  
        <StackPanel>  
            <ListView Name="listView1" Width="200"  Height="200"    >  
                <ListView.View>  
                    <GridView>  
                        <GridViewColumn Header="Price" DisplayMemberBinding="{Binding Price}"/>  
                        <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>  
                    </GridView>  
                </ListView.View>  
            </ListView>  
            <ListView Name="listView" >  
                <ListView.View>  
                    <GridView>  
                        <GridViewColumn Header="CustomerId" DisplayMemberBinding="{Binding CustomerId}" Width="100" />  
                        <GridViewColumn Header="Customers" CellTemplate="{StaticResource CustomersTemplate}"/>  
                    </GridView>  
                </ListView.View>  
            </ListView>  
        </StackPanel>  
    

    The code of xaml.cs:

    public partial class MainWindow : Window  
      {  
        public MainWindow()  
        {  
          InitializeComponent();  
          DataContext = this;  
          var items=new List<OrderItem>  
          {   
            new OrderItem{ Name="Pants",Price=134 },  
            new OrderItem{ Name="Jacket",Price=256 },  
            new OrderItem{ Name="Sockets",Price=373 }  
          };  
          var customers = new List<Customer>  
            {  
                new Customer  
                {  
                    CustomerId = 1,  
                    Orders = new List<Order>  
                    {  
                        new Order {OrderId = 1, Items = new List<OrderItem>(new[] { new OrderItem { Name = "Pants", Price = 127}, new OrderItem { Name = "Sockets", Price = 260} })},  
                        new Order {OrderId = 2, Items = items}  
                    }  
                },  
                new Customer  
                {  
                    CustomerId = 2,  
                    Orders = new List<Order>  
                    {  
                         new Order {OrderId = 1, Items = new List<OrderItem>(new[] { new OrderItem { Name = "Shirt", Price = 140}, new OrderItem { Name = "Cap", Price = 265} })},  
                        new Order {OrderId = 2, Items = new List<OrderItem>(new[] { new OrderItem { Name = "Shoses", Price = 150} })}  
                    }  
                }  
            };  
          listView.ItemsSource = customers;  
          listView1.ItemsSource = items;  
        }  
      }  
      public class Customer  
      {  
        public int CustomerId { get; set; }  
        public List<Order> Orders { get; set; }  
      }  
      
      public class Order  
      {  
        public int OrderId { get; set; }  
        public List<OrderItem> Items { get; set; }  
      }  
      
      public class OrderItem  
      {  
        public double Price { get; set; }  
        public string Name { get; set; }  
      }  
    

    The picture of result:
    145699-image.png

    Update:

    According to your code, you could try to use CompositeCollection dynamic binding method to bind the list view to multiple sources. You can refer to the code below and incorporate it into your project.
    The code of xaml:

     <Window.Resources>  
            <CompositeCollection x:Key="MyColl" >  
                <CollectionContainer Collection="{Binding DataContext.Dogs,Source={x:Reference MyList}}"/>  
                <CollectionContainer Collection="{Binding DataContext.Birds,Source={x:Reference MyList}}"/>  
                <CollectionContainer Collection="{Binding DataContext.Cats,Source={x:Reference MyList}}"/>  
            </CompositeCollection>  
            <DataTemplate x:Key="cDogChildren">  
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" >  
                    <ListView ItemsSource="{Binding DogChildren}">  
                        <ListView.View>  
                            <GridView>  
                                <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>  
                                <GridViewColumn Header="Run" DisplayMemberBinding="{Binding Run}"/>  
                            </GridView>  
                        </ListView.View>  
                    </ListView>  
                </StackPanel>  
                  
            </DataTemplate>  
            <DataTemplate x:Key="cBirdChildren">  
                <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch" >  
                    <ListView ItemsSource="{Binding BirdChildren}">  
                        <ListView.View>  
                            <GridView>  
                                <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}"/>  
                                <GridViewColumn Header="Fly" DisplayMemberBinding="{Binding Fly}"/>  
                            </GridView>  
                        </ListView.View>  
                    </ListView>  
                </StackPanel>  
      
            </DataTemplate>  
        </Window.Resources>  
        <Grid>  
            <ListView x:Name="MyList" ItemsSource="{DynamicResource MyColl}" >  
                <ListView.View>  
                    <GridView>  
                        <GridViewColumn Header="Name"  DisplayMemberBinding="{Binding Name}"/>  
                        <GridViewColumn Header="Fly" DisplayMemberBinding="{Binding Fly}"/>  
                        <GridViewColumn Header="Run" DisplayMemberBinding="{Binding Run}"/>  
                        <GridViewColumn Header="Sleep" DisplayMemberBinding="{Binding Sleep}"/>  
                        <GridViewColumn Header="Color" DisplayMemberBinding="{Binding Color}"/>  
                        <GridViewColumn Header="DogChildren"   CellTemplate="{StaticResource cDogChildren}"/>  
                        <GridViewColumn Header="BirdChildren"   CellTemplate="{StaticResource cBirdChildren}"/>  
      
                    </GridView>  
                </ListView.View>  
            </ListView>  
        </Grid>  
    

    The code of xaml.cs:

    using System.Collections.Generic;  
    using System.Collections.ObjectModel;  
    using System.Windows;  
      
    namespace ListViewBindSeveralSource  
    {  
      public partial class MainWindow : Window  
      {  
        public MainWindow()  
        {  
          InitializeComponent();  
          for(int i = 0; i < 3; i++)  
          {  
            Dogs.Add(new Dog()  
            {  
              Name = "Dog" + i,Run="run",Color="black",  
              DogChildren = new List<Dog>()   
              {  
                new Dog() {  Name="childDog1", Run="run" ,DogChildren=new List<Dog>(new[]{ new Dog{Name="dog1",Run="childrun"},new Dog{ Name="dog2",Run="childrun2"} })},  
                new Dog() { Name="childDog2", Run="run" }  
              }   
            });  
      
            Birds.Add(new Bird()  
            {  
              Name = "Bird" + i,Fly="fly",Color="blue",  
              BirdChildren = new List<Bird>()  
              {  
                new Bird() {  Name="childBird1", Fly="fly1" ,BirdChildren=new List<Bird>(new[]{ new Bird { Name= "bird1", Fly = "childfly1" },new Bird { Name= "bird2", Fly = "childfly2" } })},  
                new Bird() { Name="childBird2", Fly="fly2" }  
              }  
            });  
            Cats.Add(new Cat  
            {  
              Name="Cat"+i,Sleep="sleep"  
            });  
          }  
          DataContext=this;  
        }  
        public ObservableCollection<Dog> Dogs { get; } = new ObservableCollection<Dog>();  
        public ObservableCollection<Bird> Birds { get; } = new ObservableCollection<Bird>();  
        public ObservableCollection<Cat> Cats { get; } = new ObservableCollection<Cat>();  
      }  
      public class Dog : Animal  
      {  
        public string Run { get;set;}  
        public List<Dog> DogChildren { get; set; }  
      }  
      
      public class Bird : Animal  
      {  
        public string Fly { get;set;}  
        public List<Bird> BirdChildren { get; set; }  
      }  
      public class Cat : Animal  
      {  
        public string Sleep { get; set; }  
      }  
      public class Animal  
      {  
        public string Name { get; set; }  
        public string Color { get; set; }  
      }  
    }  
    

    The picture of result:
    146456-image.png


    If the answer is the right solution, please click Accept Answer and kindly upvote it. If you have extra questions about this answer, please click Comment.
    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.

    0 comments No comments

  3. Marino Liranzo 81 Reputation points
    2021-11-02T15:26:03.723+00:00

    Thanks for your prompt reply, my code has a similar structure, however, the listviews are semi independent of each other, so I don't know how to unite them in a single listview like your code. Here is a sample of what I have.

    <Window.Resources>
            <DataTemplate x:Key="MyDataTemplate">
                <Border BorderBrush="#FF000000" BorderThickness="1,1,0,0" Margin="-6,-2,-6,-2">
                    <StackPanel Margin="6,2,6,2">
                        <TextBlock Text="{Binding MySpecialBinding}"/>
                    </StackPanel>
                </Border>
            </DataTemplate>
            <Style x:Key="MyItemContainerStyle" TargetType="{x:Type ListViewItem}">
                <Setter Property="HorizontalContentAlignment" Value="Stretch" />
                <Setter Property="VerticalContentAlignment" Value="Stretch" />
            </Style>
            <Style x:Key="GroupHeaderStyle" TargetType = "{x:Type GroupItem}" >
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type GroupItem}">
                            <StackPanel>
                                <TextBlock Text="{Binding Nivel}"/>
                                <ItemsPresenter/>
                            </StackPanel>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </Window.Resources>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="45*"/>
                <ColumnDefinition Width="23*"/>
                <ColumnDefinition Width="39*"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="0.90*" />
                <RowDefinition Height="0.10*"/>
            </Grid.RowDefinitions>
            <FlowDocumentScrollViewer Name="fdpv" Grid.ColumnSpan="3">
                <FlowDocument Name="flowDocument" PageHeight="Auto"  PageWidth="Auto">
                    <Paragraph>
                        <Floater HorizontalAlignment="Left" Width="80">
                            <BlockUIContainer>
                                <Image Source="C:/Users/Marin/source/repos/AnalisisMamposteriaWPF/Imagenes 24/Edificio.bmp"  />
                            </BlockUIContainer>
                        </Floater>
                        <Run FontSize="16" FontFamily="Impact" Foreground="Brown">Adima v2.50 Pro</Run>
                        <Run FontSize="13" FontFamily="Calibri">Análisis y Diseño de Muros de Mampostería Armada</Run>
                    </Paragraph>
                    <Table CellSpacing="0">
                        <Table.Columns>
                            <TableColumn Width="55"/>
                            <TableColumn Width="240"/>
                            <TableColumn Width="60"/>
                            <TableColumn Width="90"/>
                        </Table.Columns>
                        <TableRowGroup>
                            <TableRow>
                                <TableCell >
                                    <Paragraph FontSize="12">Proyecto:</Paragraph>
                                </TableCell>
                                <TableCell>
                                    <Paragraph TextAlignment="Left">
                                        <Label Height="22" Name="proName" Content= "{Binding Path = ProjectName}" FontSize="12" VerticalAlignment="Center"></Label>
                                    </Paragraph>
                                </TableCell>
                                <TableCell>
                                    <Paragraph TextAlignment="Left" FontSize="12">Ingeniero:</Paragraph>
                                </TableCell>
                                <TableCell>
                                    <Paragraph TextAlignment="Left">
                                        <Label Height="22" Name="EstrName" Content= "{Binding Path = Estructuralis}" FontSize="12" VerticalAlignment="Center"></Label>
                                    </Paragraph>
                                </TableCell>
                            </TableRow>
                        </TableRowGroup>
                        <TableRowGroup>
                            <TableRow>
                                <TableCell >
                                    <Paragraph FontSize="12">Cliente :</Paragraph>
                                </TableCell>
                                <TableCell>
                                    <Paragraph TextAlignment="Left">
                                        <Label Height="22" Name="CliName" Content= "{Binding Path = Cliente}" FontSize="12" VerticalAlignment="Center"></Label>
                                    </Paragraph>
                                </TableCell>
                                <TableCell>
                                    <Paragraph TextAlignment="Left" FontSize="12">Código:</Paragraph>
                                </TableCell>
                                <TableCell>
                                    <Paragraph TextAlignment="Left">
                                        <Label Height="22" Name="CodeName" Content= "{Binding Path = TraCode}" FontSize="12" HorizontalAlignment="Center"></Label>
                                    </Paragraph>
                                </TableCell>
                            </TableRow>
                        </TableRowGroup>
                    </Table>
                    <Paragraph TextAlignment="Center" FontSize="12">DATOS PARA EL DISEÑO</Paragraph>
                    <BlockUIContainer>
                        <ListView Name="lstView" FontFamily="Calibri" FontSize="12" Background="Transparent" BorderThickness="0"
                                  ItemContainerStyle="{DynamicResource MyItemContainerStyle}">
                            <ListView.View>
                                <GridView>
                                    <GridViewColumn Header="Muro#" DisplayMemberBinding="{Binding Elemento}" Width="52" CellTemplate="{DynamicResource MyDataTemplate}" />
                                    <GridViewColumn Header="Nivel" DisplayMemberBinding="{Binding Nivel}" Width="52" CellTemplate="{DynamicResource MyDataTemplate}" />
                                    <GridViewColumn Header="Long(m)" DisplayMemberBinding="{Binding Long, StringFormat='F2'}" Width="65" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Esp(m)" DisplayMemberBinding="{Binding Esp}" Width="66" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Alt(m)" DisplayMemberBinding="{Binding Altura}" Width="60" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="f'm(kg/c2)" DisplayMemberBinding="{Binding FM}" Width="75" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Em(kg/c2)" DisplayMemberBinding="{Binding Em}" Width="72" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Ev(kg/c2)" DisplayMemberBinding="{Binding Ev}" Width="72" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="V(to/m3)" DisplayMemberBinding="{Binding VD, StringFormat='F3'}" Width="70" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                </GridView>
                            </ListView.View>
                            <ListView.GroupStyle>
                                <GroupStyle>
                                    <GroupStyle.HeaderTemplate>
                                        <DataTemplate>
                                            <TextBlock FontWeight="Bold" FontSize="14" Text="{Binding Elemento}"/>
                                        </DataTemplate>
                                    </GroupStyle.HeaderTemplate>
                                </GroupStyle>
                            </ListView.GroupStyle>
                        </ListView>
                    </BlockUIContainer>
                    <Paragraph TextAlignment="Center" FontSize="12"></Paragraph>
                    <Paragraph TextAlignment="Center" FontSize="12"></Paragraph>
                    <Paragraph TextAlignment="Center" FontSize="12"></Paragraph>
                    <Paragraph TextAlignment="Center" FontSize="12">- CARGAS ULTIMAS Y NOMINALES -</Paragraph>
                    <BlockUIContainer>
                        <ListView Name="lstView2" ItemsSource="{Binding}" FontFamily="Calibri" FontSize="12" Background="Transparent" BorderThickness="0">
                            <ListView.View>
                                <GridView>
                                    <GridViewColumn Header="Combo" DisplayMemberBinding="{Binding Combo}" Width="52" CellTemplate="{DynamicResource MyDataTemplate}" />
                                    <GridViewColumn Header="Nivel" DisplayMemberBinding="{Binding Nivel}" Width="52" CellTemplate="{DynamicResource MyDataTemplate}" />
                                    <GridViewColumn Header="Muro#" DisplayMemberBinding="{Binding Elemento}" Width="52" CellTemplate="{DynamicResource MyDataTemplate}" />
                                    <GridViewColumn Header="Pu(to)" DisplayMemberBinding="{Binding PU, StringFormat='F2'}" Width="51" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Vu(to)" DisplayMemberBinding="{Binding VU, StringFormat='F3'}" Width="55" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Mu(t.m)" DisplayMemberBinding="{Binding MU, StringFormat='F3'}" Width="56" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Pn(to)" DisplayMemberBinding="{Binding PN, StringFormat='F3'}" Width="56" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Vn(to)" DisplayMemberBinding="{Binding VN, StringFormat='F3'}" Width="55" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Mn(t.m)" DisplayMemberBinding="{Binding MN, StringFormat='F3'}" Width="55" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Mnz(t.m)" DisplayMemberBinding="{Binding MNZ, StringFormat='F3'}" Width="55" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Pu/Pn" DisplayMemberBinding="{Binding PUPN, StringFormat='F3'}" Width="50" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Vu/Vn" DisplayMemberBinding="{Binding VUVN, StringFormat='F3'}" Width="50" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Mu/Mn" DisplayMemberBinding="{Binding MUMN, StringFormat='F3'}" Width="50" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                </GridView>
                            </ListView.View>
                            <ListView.GroupStyle>
                                <GroupStyle>
                                    <GroupStyle.HeaderTemplate>
                                        <DataTemplate>
                                            <StackPanel>
                                                <TextBlock Text="{Binding Path = Nivel}" FontWeight="Bold" Padding="3"/>
                                            </StackPanel>
                                        </DataTemplate>
                                    </GroupStyle.HeaderTemplate>
                                    <GroupStyle.ContainerStyle>
                                        <Style TargetType="{x:Type GroupItem}">
                                            <Setter Property="Margin" Value="0,0,0,5"/>
                                            <Setter Property="Template">
                                                <Setter.Value>
                                                    <ControlTemplate TargetType="{x:Type GroupItem}">
                                                        <Expander IsExpanded="True" BorderBrush="#FFA4B97F" BorderThickness="0,0,0,1">
                                                            <Expander.Header>
                                                                <DockPanel>
                                                                    <TextBlock FontWeight="Bold" Text="{Binding Path = Nivel}" Margin="5,0,0,0" Width="100"/>
                                                                    <TextBlock FontWeight="Bold" Text="{Binding Path=ItemCount}"/>
                                                                    <TextBlock Text = "Muro"/>
                                                                </DockPanel>
                                                            </Expander.Header>
                                                            <Expander.Content>
                                                                <ItemsPresenter />
                                                            </Expander.Content>
                                                        </Expander>
                                                    </ControlTemplate>
                                                </Setter.Value>
                                            </Setter>
                                        </Style>
                                    </GroupStyle.ContainerStyle>
                                </GroupStyle>
                            </ListView.GroupStyle>
                        </ListView>
                    </BlockUIContainer>
                    <Paragraph TextAlignment="Center" FontSize="12"></Paragraph>
                    <Paragraph TextAlignment="Center" FontSize="12"></Paragraph>
                    <Paragraph TextAlignment="Center" FontSize="12"></Paragraph>
                    <Paragraph TextAlignment="Center" FontSize="12">- PARAMETROS DE DISEÑO -</Paragraph>
                    <BlockUIContainer>
                        <ListView Name="lstView3" FontFamily="Calibri" FontSize="12" Background="Transparent" BorderThickness="0"  
                                  ItemContainerStyle="{DynamicResource MyItemContainerStyle}">
                            <ListView.View>
                                <GridView>
                                    <GridViewColumn Header="Muro#" DisplayMemberBinding="{Binding Elemento}" Width="52" CellTemplate="{DynamicResource MyDataTemplate}" />
                                    <GridViewColumn Header="Nivel" DisplayMemberBinding="{Binding Nivel}" Width="52" CellTemplate="{DynamicResource MyDataTemplate}" />
                                    <GridViewColumn Header="Vnm(to)" DisplayMemberBinding="{Binding VMN, StringFormat='F2'}" Width="65" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Ae(cm2)" DisplayMemberBinding="{Binding Ae}" Width="66" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Fe" DisplayMemberBinding="{Binding Fe, StringFormat='F3'}" Width="60" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Kp.H/tb" DisplayMemberBinding="{Binding Kph}" Width="75" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Vm(to)" DisplayMemberBinding="{Binding Vm, StringFormat='F3'}" Width="72" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="te(cm)" DisplayMemberBinding="{Binding Te}" Width="72" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Vs(to)" DisplayMemberBinding="{Binding Vs, StringFormat='F3'}" Width="70" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                </GridView>
                            </ListView.View>
                            <ListView.GroupStyle>
                                <GroupStyle>
                                    <GroupStyle.HeaderTemplate>
                                        <DataTemplate>
                                            <TextBlock FontWeight="Bold" FontSize="14" Text="{Binding Elemento}"/>
                                        </DataTemplate>
                                    </GroupStyle.HeaderTemplate>
                                </GroupStyle>
                            </ListView.GroupStyle>
                        </ListView>
                    </BlockUIContainer>
                    <Paragraph TextAlignment="Center" FontSize="12"></Paragraph>
                    <Paragraph TextAlignment="Center" FontSize="12"></Paragraph>
                    <Paragraph TextAlignment="Center" FontSize="12"></Paragraph>
                    <Paragraph TextAlignment="Center" FontSize="12">- RESULTADOS DE DISEÑO - REFUERZOS EN MUROS -</Paragraph>
                    <BlockUIContainer>
    
                        <ListView Name="lstDisV" ItemsSource="{Binding}" FontFamily="Calibri" FontSize="12" Background="Transparent" BorderThickness="0">
                            <ListView.View>
                                <GridView>
                                    <GridViewColumn Header="Combo" DisplayMemberBinding="{Binding Combo}" Width="52" CellTemplate="{DynamicResource MyDataTemplate}" />
                                    <GridViewColumn Header="Nivel" DisplayMemberBinding="{Binding Nivel}" Width="50" CellTemplate="{DynamicResource MyDataTemplate}" />
                                    <GridViewColumn Header="Muro#" DisplayMemberBinding="{Binding Elemento}" Width="50" CellTemplate="{DynamicResource MyDataTemplate}" />
                                    <GridViewColumn Header="As/Vert." DisplayMemberBinding="{Binding ASV, StringFormat='F2'}" Width="70" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="As/Hor." DisplayMemberBinding="{Binding ASH, StringFormat='F3'}" Width="70" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="As/Cab" DisplayMemberBinding="{Binding ACB, StringFormat='F3'}" Width="45" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="ctia/V" DisplayMemberBinding="{Binding CTV, StringFormat='F5'}" Width="55" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="ctia/H" DisplayMemberBinding="{Binding CTH, StringFormat='F5'}" Width="55" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="ctia/C" DisplayMemberBinding="{Binding CTC, StringFormat='F5'}" Width="55" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Ck/V." DisplayMemberBinding="{Binding CKV}" Width="40" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Ck/H." DisplayMemberBinding="{Binding CKH}" Width="40" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                    <GridViewColumn Header="Status" DisplayMemberBinding="{Binding CKS}" Width="45" CellTemplate="{DynamicResource MyDataTemplate}"/>
                                </GridView>
                            </ListView.View>
                            <ListView.GroupStyle>
                                <GroupStyle>
                                    <GroupStyle.HeaderTemplate>
                                        <DataTemplate>
                                            <StackPanel>
                                                <TextBlock Text="{Binding Path = Nivel}" FontWeight="Bold" Padding="3"/>
                                            </StackPanel>
                                        </DataTemplate>
                                    </GroupStyle.HeaderTemplate>
                                    <GroupStyle.ContainerStyle>
                                        <Style TargetType="{x:Type GroupItem}">
                                            <Setter Property="Margin" Value="0,0,0,5"/>
                                            <Setter Property="Template">
                                                <Setter.Value>
                                                    <ControlTemplate TargetType="{x:Type GroupItem}">
                                                        <Expander IsExpanded="True" BorderBrush="#FFA4B97F" BorderThickness="0,0,0,1">
                                                            <Expander.Header>
                                                                <DockPanel>
                                                                    <TextBlock FontWeight="Bold" Text="{Binding Path = Nivel}" Margin="5,0,0,0" Width="100"/>
                                                                    <TextBlock FontWeight="Bold" Text="{Binding Path=ItemCount}"/>
                                                                    <TextBlock Text = "Muro"/>
                                                                </DockPanel>
                                                            </Expander.Header>
                                                            <Expander.Content>
                                                                <ItemsPresenter />
                                                            </Expander.Content>
                                                        </Expander>
                                                    </ControlTemplate>
                                                </Setter.Value>
                                            </Setter>
                                        </Style>
                                    </GroupStyle.ContainerStyle>
                                </GroupStyle>
                            </ListView.GroupStyle>
                        </ListView>
                    </BlockUIContainer>
                </FlowDocument>
            </FlowDocumentScrollViewer>
            <Button Height="24" Width="24" Grid.Row="1" Click="Button_Click" HorizontalAlignment="Right" Margin="0,16,8,27" Grid.Column="2">
                <Image Source="C:/Users/Marin/source/repos/AnalisisMamposteriaWPF/Imagenes 24/impresoraModernaSetup.png" Stretch="None" />
            </Button>
        </Grid>
    

    Code behind:

    public frmPrintDocument(InfoProject info, List<Shape3D> lstShapes, List<float> lstAlt, List<List<float>> lstVD,
                List<string> entrp, List<float> lstMn, List<float> lstMnfp, List<float> lstPn, List<float> lstPnfp,
                List<float> lstVn, List<float> lstVm, List<float> lstVnm, List<float> lstAe, List<float> lstFe, List<float> lstKpH,
                List<float> lstte, List<float> lstVs, List<double> lstCtiaC, List<double> lstCtiaH,
                List<double> lstCtiaV, List<List<List<float>>> sumaFactorizada, List<List<List<float>>> EQFactorizada, 
                List<List<List<float>>> OMamplificada, string[] pcombo, List<string> ArmaduraV, List<string> ArmaduraH, 
                List<string> ArmaduraC, List<string> chkCtiaV, List<string> chkCtiaH, List<string> chkStusM,
                 List<List<float>> _lstLong, List<List<float>> _lstEsp, List<List<int>> _lstnumb)
            {
                InitializeComponent();
                this.info = info;
                this.lstShapes = lstShapes;
                this.lstAlt = lstAlt;
                this.lstVD = lstVD;
                this.entrp = entrp;
                this.lstMn = lstMn;
                this.lstMnfp = lstMnfp;
                this.lstPn = lstPn;
                this.lstPnfp = lstPnfp;
                this.lstVn = lstVn;
                this.lstVm = lstVm;
                this.lstVnm = lstVnm;
                this.lstAe = lstAe;
                this.lstFe = lstFe;
                this.lstKpH = lstKpH;
                this.lstte = lstte;
                this.lstVs = lstVs;
                this.lstCtiaC = lstCtiaC;
                this.lstCtiaH = lstCtiaH;
                this.lstCtiaV = lstCtiaV;
                this.sumaFactorizada = sumaFactorizada;
                this.EQFactorizada = EQFactorizada;
                this.OMamplificada = OMamplificada;
                this.pcombo = pcombo;
                this.ArmaduraV = ArmaduraV;
                this.ArmaduraH = ArmaduraH;
                this.ArmaduraC = ArmaduraC;
                this.chkCtiaV = chkCtiaV;
                this.chkCtiaH = chkCtiaH;
                this.chkStusM = chkStusM;
                this.lstnumb = _lstnumb;
                lstLong = _lstLong;
                lstEsp = _lstEsp;
    
                this.DataContext = info;
    
                if (entrp[0] == "Base")
                {
                    entrp.Reverse();
                }
    
                lstDatos = new ObservableCollection<DatosElementos>();
                lstDatos3 = new ObservableCollection<ParametroDiseno>();
                lstDatos4 = new ObservableCollection<ResultadosDiseno>();
                lstTNv = new ObservableCollection<TipoNivel>();
    
                for (int k = 1; k < lstAlt.Count; k++)
                {
                    TipoNivel tniv = new TipoNivel();
                    tniv.TNivel = entrp;
                    lstTNv.Add(tniv);
                }
    
                if (lstShapes.Count > 0)
                {
                    for (int k = 0; k < lstnumb.Count; k++)
                    {
                        for (int i = 0; i < lstnumb[k].Count; i++)
                        {
                            DatosElementos datEl = new DatosElementos();
                            datEl.Elemento = lstnumb[k][i];
                            datEl.Long = lstLong[k][i];
                            datEl.Esp = lstEsp[k][i];
                            datEl.Altura = lstAlt[k];
                            datEl.FM = lstShapes[i].propiedad.EsfuerzoMamposteria;
                            datEl.Em = lstShapes[i].propiedad.ModuloElasticidad;
                            datEl.Ev = lstShapes[i].propiedad.ModuloCortante;
                            datEl.VD = lstVD[k][i];
                            datEl.Nivel = entrp[k];
                            lstDatos.Add(datEl);
                        }
                    }
                }
                lstView.ItemsSource = lstDatos;
                lstTot.Add(lstView);
    
                ListCollectionView view = new ListCollectionView(lstDatos);
                PropertyGroupDescription groupDescription = new PropertyGroupDescription("Nivel");
                view.GroupDescriptions.Add(groupDescription);
                lstView.ItemsSource = view;
    
                lstDatos2 = new ObservableCollection<ResultadosElementos>();
                if (lstShapes.Count > 0)
                {
                    for (int i = 0; i < sumaFactorizada.Count; i++)
                    {
                        for (int j = 0; j < sumaFactorizada[i].Count; j++)
                        {
                            for (int k = 0; k < sumaFactorizada[i][j].Count; k++)
                            {
                                ResultadosElementos ResEl = new ResultadosElementos();
                                ResEl.Combo = pcombo[i];
                                ResEl.Nivel = entrp[j];
                                ResEl.Elemento = lstnumb[j][k];
                                ResEl.PU = sumaFactorizada[i][j][k];
                                ResEl.VU = EQFactorizada[i][j][k];
                                ResEl.MU = OMamplificada[i][j][k];
                                ResEl.PN = lstPn[k];
                                ResEl.VN = lstVn[k];
                                ResEl.MN = lstMn[k];
                                ResEl.MNZ = lstMnfp[k];
                                ResEl.PUPN = ResEl.PU / ResEl.PN;
                                ResEl.VUVN = ResEl.VU / ResEl.VN;
                                ResEl.MUMN = ResEl.MU / ResEl.MN;
                                lstDatos2.Add(ResEl);
                            }
                        }
                    }
                }
                lstView2.ItemsSource = lstDatos2;
                lstTot.Add(lstView2);
    
                ListCollectionView view2 = new ListCollectionView(lstDatos2);
                PropertyGroupDescription groupDescription2 = new PropertyGroupDescription("Nivel");
                view2.GroupDescriptions.Add(groupDescription2);
                lstView2.ItemsSource = view2;
    
                ListCollectionView view3 = new ListCollectionView(lstDatos2);
                PropertyGroupDescription groupDescription3 = new PropertyGroupDescription("Combo");
                view3.GroupDescriptions.Add(groupDescription3);
                lstView2.ItemsSource = view3;
    
                if (lstShapes.Count > 0)
                {
                    for (int k = 0; k < lstnumb.Count; k++)
                    {
                        for (int i = 0; i < lstnumb[k].Count; i++)
                        {
                            ParametroDiseno datEl = new ParametroDiseno();
                            datEl.Elemento = lstnumb[k][i];
                            datEl.VMN = lstVnm[i];
                            datEl.Ae = lstAe[i];
                            datEl.Fe = lstFe[i];
                            datEl.Kph = lstKpH[i];
                            datEl.Vm = lstVm[i];
                            datEl.Te = lstte[i];
                            datEl.Vs = lstVs[i];
                            datEl.Nivel = entrp[k];
                            lstDatos3.Add(datEl);
                        }
                    }
                }
                lstView3.ItemsSource = lstDatos3;
                lstTot.Add(lstView3);
    
                ListCollectionView view4 = new ListCollectionView(lstDatos3);
                PropertyGroupDescription groupDescription4 = new PropertyGroupDescription("Nivel");
                view4.GroupDescriptions.Add(groupDescription4);
                lstView3.ItemsSource = view4;
    
                if (lstShapes.Count > 0)
                {
                    for (int i = 0; i < sumaFactorizada.Count; i++)
                    {
                        for (int j = 0; j < sumaFactorizada[i].Count; j++)
                        {
                            for (int k = 0; k < sumaFactorizada[i][j].Count; k++)
                            {
                                ResultadosDiseno ResEl = new ResultadosDiseno();
                                ResEl.Combo = pcombo[i];
                                ResEl.Nivel = entrp[j];
                                ResEl.Elemento = lstnumb[j][k];
                                ResEl.ASV = ArmaduraV[k];
                                ResEl.ASH = ArmaduraH[k];
                                ResEl.ACB = ArmaduraC[k];
                                ResEl.CTV = (float)lstCtiaV[k];
                                ResEl.CTH = (float)lstCtiaH[k];
                                ResEl.CTC = (float)lstCtiaC[k];
                                ResEl.CKV = chkCtiaV[k];
                                ResEl.CKH = chkCtiaH[k];
                                ResEl.CKS = chkStusM[k];
                                lstDatos4.Add(ResEl);
                            }
                        }
                    }
                }
                lstDisV.ItemsSource = lstDatos4;
                lstTot.Add(lstDisV);
            }
    

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.