2014-10-08 2 views
0

Я создал сетку с использованием вида списка. Существует 2 уровня узлов, и я хотел бы отложить дочерний узел. Поэтому я установил поле в <ItemPresenter>. Результат выглядит довольно неплохо, но второй и третий столбцы также были отступом и не выровнены в соответствии со своим столбцом заголовка. Любая идея отступать только в первом столбце, но не в остальном столбце?Отступ первый столбец в GridView ListView

XAML

<ListView Name="listViewResult" Margin="10,231,0,-299" BorderBrush="#FF000000" BorderThickness="1" > 
       <ListView.View> 
        <GridView> 
         <GridViewColumn Header="Name" Width="280" DisplayMemberBinding="{Binding GrandChildNodeData}" /> 
         <GridViewColumn Header="Date/ Time" Width="160" DisplayMemberBinding="{Binding Time}" /> 
         <GridViewColumn Header="State" Width="160" DisplayMemberBinding="{Binding State}" /> 
        </GridView> 
       </ListView.View> 

       <ListView.GroupStyle> 
        <GroupStyle> 
         <GroupStyle.ContainerStyle> 
          <Style TargetType="{x:Type GroupItem}"> 
           <Setter Property="Template"> 
            <Setter.Value> 
             <ControlTemplate> 
              <Expander IsExpanded="True"> 
               <Expander.Header> 
                <StackPanel Orientation="Horizontal"> 
                 <TextBlock Text="{Binding Name}" FontWeight="Bold" VerticalAlignment="Bottom" /> 
                 <TextBlock Text="{Binding ItemCount}" Foreground="Silver" FontStyle="Italic" Margin="10,0,0,0" VerticalAlignment="Bottom" /> 
                 <TextBlock Text=" item(s)" Foreground="Silver" FontStyle="Italic" VerticalAlignment="Bottom" /> 
                </StackPanel> 
               </Expander.Header> 
               <ItemsPresenter Margin="20,0,0,0" /> 
              </Expander> 
             </ControlTemplate> 
            </Setter.Value> 
           </Setter> 
          </Style> 
         </GroupStyle.ContainerStyle> 
        </GroupStyle> 
       </ListView.GroupStyle> 
      </ListView> 

результат

enter image description here

ответ

0

Этот вопрос был дан ответ Магнуса в этом forum

«Вы устанавливаете Margin всего GroupItem . Вы должен определить CellTemplate для первого столбца и установить там поля: «

<ListView.View> 
     <GridView> 
      <GridViewColumn Header="Name" Width="120"> 
      <GridViewColumn.CellTemplate> 
       <DataTemplate> 
       <TextBlock Text="{Binding Name}" Margin="20 0 0 0"/> 
       </DataTemplate> 
      </GridViewColumn.CellTemplate> 
      </GridViewColumn> 
      <GridViewColumn Header="Date/ Time" Width="160" DisplayMemberBinding="{Binding Time}" /> 
      <GridViewColumn Header="State" Width="160" DisplayMemberBinding="{Binding State}" /> 
     </GridView> 
     </ListView.View> 
     <ListView.GroupStyle> 
     <GroupStyle> 
      <GroupStyle.ContainerStyle> 
      <Style TargetType="{x:Type GroupItem}"> 
       <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate> 
        <Expander IsExpanded="True"> 
         <Expander.Header> 
         <StackPanel Orientation="Horizontal"> 
          <TextBlock Text="{Binding Name}" FontWeight="Bold" VerticalAlignment="Bottom" /> 
          <TextBlock Text="{Binding ItemCount}" Foreground="Silver" FontStyle="Italic" Margin="10,0,0,0" VerticalAlignment="Bottom" /> 
          <TextBlock Text=" item(s)" Foreground="Silver" FontStyle="Italic" VerticalAlignment="Bottom" /> 
         </StackPanel> 
         </Expander.Header> 
         <ItemsPresenter /> 
        </Expander> 
        </ControlTemplate> 
       </Setter.Value> 
       </Setter> 
      </Style> 
      </GroupStyle.ContainerStyle> 
     </GroupStyle> 
     </ListView.GroupStyle> 
Смежные вопросы