Datagrid привязан к CollectionView, разделив строку на две части - PullRequest
0 голосов
/ 23 мая 2018

У меня есть столбцы 1,2,3,4,5,6,7,8

Первые два - это атрибуты, другие содержат данные. Я хочу разбить каждую строку на две и использовать метки в качестве заголовков столбцов

1,2,3,4,5

1,2,6,7,8

Если я смогу сделать

 1
  2
   3 4 5
   6 7 8

Это было быбыть еще лучшеНо я не знаю с чего начать

1 Ответ

0 голосов
/ 23 мая 2018

Моим решением было бы использовать расширитель с горизонтальной стековой панелью для Column1, другой расширитель с горизонтальной стековой панелью для Column2, а для столбцов с 3 по 8 использовать сетку данных.Все это содержимое получено из элементов управления, определенных в сетке.Сами данные могут быть определены как наблюдаемый источник сбора, который может обновляться в зависимости от потребностей программы.

        <ItemsControl ItemsSource="{Binding Datasource1}">
            <ItemsControl.ItemsPanel>
              <ItemsPanelTemplate>
                <StackPanel >
                </StackPanel>
              </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
              <DataTemplate>
                  <Expander Header="Header1"  >
                                <Expander.HeaderTemplate>
                                    <DataTemplate>
                                            <StackPanel>                                       
                                            </StackPanel>
                                    </DataTemplate>
                                </Expander.HeaderTemplate>
                                <Grid>
                    <ItemsControl ItemsSource="{Binding Datasource2}">
                      <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                          <StackPanel></StackPanel>
                        </ItemsPanelTemplate>
                      </ItemsControl.ItemsPanel>
                      <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <Expander Header="Header2">
                                <Expander.HeaderTemplate>
                                    <DataTemplate>
                                        <StackPanel>
                                        </StackPanel>
                                    </DataTemplate>
                                </Expander.HeaderTemplate>
                                <DataGrid  ItemsSource="{Binding Datasource3to8}" AutoGenerateColumns="False" >
                              <DataGrid.Columns>
                                <DataGridTextColumn Header="Test"
                                                    Width="Auto"
                                                    Binding="{Binding Datasource3}" />
                                <DataGridTextColumn Header="Test"
                                                    Width="Auto"
                                                    Binding="{Binding Datasource4}" />
                                <DataGridTextColumn Header="Test"
                                                    Width="Auto"
                                                    Binding="{Binding Datasource5}" />
                                <DataGridTextColumn Header="Test"
                                                    Width="Auto"
                                                    Binding="{Binding Datasource6}" />
                                <DataGridTextColumn Header="Test"
                                                    Width="Auto"
                                                    Binding="{Binding Datasource7}" />
                              <DataGridTextColumn Header="Test"
                                                    Width="Auto"
                                                    Binding="{Binding Datasource8}" />
                              </DataGrid.Columns>
                             </DataGrid>
                          </Expander>
                        </DataTemplate>
                      </ItemsControl.ItemTemplate>
                    </ItemsControl>
                  </Grid>
                </Expander>
              </DataTemplate>
            </ItemsControl.ItemTemplate>
          </ItemsControl>

Другим вариантом будет использование сетки иерархических данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...