Items控件包含了一个拥有许多Item的集合。
所有的Items控件都是继承自ItemsControl抽象类的,它们是Control类的直系子类(类比ContentControl)
ItemsControl把它的内容保存在一个Items属性(ItemCollection类型中)。每个Item可以是任意类型的对象,它会以在内容控件中一样的方式被渲染。
<ListBox> <Button>Button</Button> <CheckBox Content="CheckBox" /> <TextBlock Text="TextBlock" /> </ListBox>
Items是一个内容属性,所以子元素将被隐式地添加到Items集合中。Items属性是只读的,这意味着可以添加对象到空的集合或删除对象,但是不能把Items指向一个完全不懂的集合。
ItemsControl有一个ItemsSource属性,通过它可以把一个任意类型的集合赋给Items集合。
Items还拥有DisplayMemberPath属性,它是一个字符串属性,可以把它设置为每一个项上(或者更复杂的表达式)的一个属性的名字,这样会改变一个对象被渲染的方式。
<ListBox DisplayMemberPath="DayOfWeek"> <Button>Button</Button> <CheckBox Content="CheckBox" /> <TextBlock Text="TextBlock" /> <sys:DateTime>1/1/2013</sys:DateTime> <sys:DateTime>2/2/2013</sys:DateTime> <sys:DateTime>3/3/2013</sys:DateTime> </ListBox>
把DisplayMemberPath设置为DayOfWeek后,WPF会渲染每一个项的DayOfWeek属性值,而不是每个Item本身。