你的位置:首页 > ASP.net教程

[ASP.net教程]WPF实现ListView大小图标和分组


XAML:
<ListView Grid.Row="3" Name="t_lvw_time" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Disabled" PreviewMouseDown="t_lvw_time_PreviewMouseMove" AllowDrop="True" DragOver="t_lvw_time_DragEnter" SelectionMode="Extended">        <ListView.ItemsPanel>          <ItemsPanelTemplate>            <WrapPanel IsItemsHost="True"/>          </ItemsPanelTemplate>        </ListView.ItemsPanel>      <ListView.ItemTemplate>        <DataTemplate>          <Grid Width="125" Height="70">            <Grid.RowDefinitions>              <RowDefinition/>              <RowDefinition/>            </Grid.RowDefinitions>            <Image Source="/ExtendSmartVTWPF;component/Images/go_home.png" HorizontalAlignment="Center" />            <TextBlock Text="{Binding Path=room_code}" TextWrapping="Wrap" Grid.Row="1" HorizontalAlignment="Center"/>          </Grid>        </DataTemplate>      </ListView.ItemTemplate>         <ListView.GroupStyle>          <GroupStyle>            <GroupStyle.ContainerStyle>              <Style TargetType="{x:Type GroupItem}">                <Setter Property="Template">                  <Setter.Value>                    <ControlTemplate TargetType="{x:Type GroupItem}">                      <Expander IsExpanded="True" BorderBrush="#B5B5B5" BorderThickness="0,0,0,1">                        <Expander.Header>                          <DockPanel>                            <TextBlock FontWeight="Bold" Text="{Binding Path=Name}" Margin="5,0,0,0" Width="150"   />                          <TextBlock FontWeight="Bold" Text="数量:" Margin="0,0,0,0" Width="50"   />                          <TextBlock FontWeight="Bold" Text="{Binding Path=ItemCount}" Margin="5,0,0,0" Width="150"   />                        </DockPanel>                        </Expander.Header>                         <Expander.Content>                          <Grid>                            <Grid.RowDefinitions>                              <RowDefinition ></RowDefinition>                              <RowDefinition></RowDefinition>                            </Grid.RowDefinitions>                            <ItemsPresenter Grid.Row="0"/>                            </Grid>                        </Expander.Content>                      </Expander>                    </ControlTemplate>                  </Setter.Value>                </Setter>              </Style>            </GroupStyle.ContainerStyle>          </GroupStyle>        </ListView.GroupStyle>      </ListView>

 后台:

      List<T> list=GetList();      var sourceView = new ListCollectionView(list);      var groupDesctripition = new PropertyGroupDescription("room_code");//按room_code分组,room_code为集合中的属性      sourceView.GroupDescriptions.Add(groupDesctripition);      listview1.ItemsSource = sourceView;

 


实例图片: