您可以指定
ItemTemplate
专门为您
ListBox
:
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<!-- your template here -->
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
或者,如果您已经定义了
DataTemplate
在一个
ResourceDictionary
在某个地方:
<DataTemplate x:Key="MyTemplate">
<!-- your template here -->
</DataTemplate>
然后你可以在
列表框
使用:
<ListBox ItemTemplate="{StaticResource MyTemplate}" />
您不需要为这些方法中的任何一种工作编写模板选择器。
例子
回应评论
下面的示例演示如何定义默认值
数据模板
对于数据类型(在本例中,
String
)对于一个窗口,然后在列表框中重写它:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<DataTemplate DataType="{x:Type sys:String}">
<Rectangle Height="10" Width="10" Margin="3" Fill="Red" />
</DataTemplate>
</Window.Resources>
<Grid>
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate>
<Rectangle Height="10" Width="10" Margin="3" Fill="Blue" />
</DataTemplate>
</ListBox.ItemTemplate>
<sys:String>One</sys:String>
<sys:String>Two</sys:String>
<sys:String>Three</sys:String>
</ListBox>
</Grid>
</Window>
这将生成以下用户界面: