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);
显示的结果如下图:
关于ItemsSource和Items的关系:
设定了ItemsSource之后,Items属性将是只读的,且具有固定的大小
如果想恢复使用Items可以将ItemsSource设置为null,此时Items将是一个空的ItemCollection
3.哪些控件继承了ItemsControl
如上图包含了以下控件:
Selector:Combox,ListBox,TabControl,MultiSelector
HeaderdItemsControl:MenuItem,ToolBar,TreeViewItem
MenuBase:ContextMenu,Menu
TreeView
StatusBar
DataGridCellsPresenter
DataGridColumnHeaderPresenter