2010-07-05 4 views

ответ

4

Это не возможно с инструментарием DataGrid или GridView для ListView, нет.

Однако вы можете иметь удачи с вашей собственной реализации, так как я недавно обнаружил, вы можете использовать GridViewHeaderRowPresenter (MSDN reference), установите Columns свойство колонки, которые вы хотите: что даст вам строку заголовка.

Затем вы можете использовать GridViewRowPresenter (MSDN reference), прикрепите его к тому же Columns коллекции и вуаля, ваши столбцы в строки и заголовок будет связан (размер заголовка, столбцы изменения).

Смотрите здесь хороший пример:

http://msdn.microsoft.com/en-us/library/ms752313.aspx

Для того, чтобы получить эффект многослойного, вы можете создать ListView или ListBox, и для каждого элемента, который вы бы выход вертикально уложенная пара элементов управления GridViewRowPresenter, каждая из которых привязана к отдельной коллекции колонок. Затем в своем собственном заголовке (чуть выше элемента управления) вы сделали бы то же самое с парой элементов управления GridViewHeaderRowPresenter.

Затем вы можете добавить любые другие биты, которые вам бы хотелось, например текст/метку, которые они имеют в скриншоте вашего примера.

Нет причин, по которым это не должно работать. Это не готовое решение, но возможно с чистым кодированием, это не взлом, и у вас есть полный контроль над тем, как он выглядит и работает! Добавление сортировки и т. Д. Довольно просто, для MSDN также есть пример.

Надеюсь, что поможет - больше вопросов по деталям, пожалуйста, добавьте комментарий здесь!

4

Похоже, что элемент управления на этом скриншоте создает иллюзию диапазона строк, разделяя ячейки в каждом столбце справа от изображения на несколько строк. Возможно, вы могли бы добиться такого эффекта, который вы ищете таким же образом.

<tk:DataGrid AutoGenerateColumns="False"> 
    <tk:DataGrid.Columns> 
     <tk:DataGridTextColumn Header="ID" Binding="{Binding ID}" /> 
     <tk:DataGridTemplateColumn Header="Photo"> 
      <tk:DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <Image Source="{Binding Photo}" /> 
       </DataTemplate> 
      </tk:DataGridTemplateColumn.CellTemplate> 
     </tk:DataGridTemplateColumn> 
     <tk:DataGridTemplateColumn> 
      <tk:DataGridTemplateColumn.Header> 
       <Grid> 
        <Grid.RowDefinitions> 
         <RowDefinition /> 
         <RowDefinition /> 
        </Grid.RowDefinitions> 
        <TextBlock Grid.Row="0">FirstName</TextBlock> 
        <TextBlock Grid.Row="1">LastName</TextBlock> 
       </Grid> 
      </tk:DataGridTemplateColumn.Header> 
      <tk:DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <Grid> 
         <Grid.RowDefinitions> 
          <RowDefinition /> 
          <RowDefinition /> 
         </Grid.RowDefinitions> 
         <TextBlock Grid.Row="0" Text="{Binding FirstName}" /> 
         <TextBlock Grid.Row="1" Text="{Binding LastName}" /> 
        </Grid> 
       </DataTemplate> 
      </tk:DataGridTemplateColumn.CellTemplate> 
     </tk:DataGridTemplateColumn> 
    </tk:DataGrid.Columns> 
</tk:DataGrid>