ItemsControl和ListView、ListBox的区别

1、ItemsControl用来显示一个数据项的集合,它的底层是一个列表,它可以非常灵活的展示布局和数据
以下是例子

<ItemsControl ItemsSource="{Binding Student}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
		    <TextBlock Text="{Binding Id}" />
			<TextBlock Text="{Binding Name}" />
			<TextBlock Text="{Binding Age}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
</ItemsControl>

2、ListBox是ItemsControl的子类,所以看源码
image
它多了选择,查找,取消的功能,
用法

<ListBox
  Width="180"
  HorizontalAlignment="Center"
  Background="Honeydew"
  ItemsSource="{Binding Source={StaticResource HeaderList}}" />

3、ListView是最新出来的,它是ListBox的子类,看源码
image
而ListView里面多了ViewBase
image
ViewBase的父类是DependencyObject
所以,对于每一项的绘制,排序,分组都可以设置不同的类型,更加的灵活。
用法

 <ListView
   Width="180"
   HorizontalAlignment="Center"
   Background="Honeydew"
   ItemsSource="{Binding Source={StaticResource HeaderList}}" />
posted @ 2024-03-08 08:56  孤沉  阅读(139)  评论(0编辑  收藏  举报