WPF控件--ItemsControl

1.ItemsControl是控件吗

ItemsControl可以在Panel中直接使用

<StackPanel>
    <ItemsControl Name="items">
    </ItemsControl>
</StackPanel>

直接设置ItemsSource也是可以显示的:

items.ItemsSource = new List<string> {"A","B","C" };

说明ItemsControl和普通的控件是相同的。

2.ItemsControl的控件的特性

ItemsControl是一个可以包含多个项目的控件,可以通过设定ItemsSource或者Items来指定ItemsControl的内容

ItemsSource:

ItemsSource可以是任何实现了IEnumerable的类型,比如说ArrayList,HashTable,Queue,List等等

Items:

可以使用Items.Add方法来手动添加ItemsControl子项,可支持各种类型,如:

items.Items.Add(DateTime.Now);
items.Items.Add("String");

Ellipse ellipse = new Ellipse();
ellipse.Width = 40;
ellipse.Height = 40;
ellipse.Fill = Brushes.Blue;

items.Items.Add(ellipse);

显示的结果如下图:

image

关于ItemsSource和Items的关系:

设定了ItemsSource之后,Items属性将是只读的,且具有固定的大小

如果想恢复使用Items可以将ItemsSource设置为null,此时Items将是一个空的ItemCollection

3.哪些控件继承了ItemsControl

ClassDiagram1

如上图包含了以下控件:

Selector:Combox,ListBox,TabControl,MultiSelector

HeaderdItemsControl:MenuItem,ToolBar,TreeViewItem

MenuBase:ContextMenu,Menu

TreeView

StatusBar

DataGridCellsPresenter

DataGridColumnHeaderPresenter

 

Celery 标签:
posted @   Celery  阅读(16190)  评论(4编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
点击右上角即可分享
微信分享提示