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}}" />

本文作者:孤沉

本文链接:https://www.cnblogs.com/guchen33/p/18060234

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   孤沉  阅读(165)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
历史上的今天:
2023-03-08 Prism报错
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
展开