这是从ItemsControl.ItemTemplate 属性 的MSDN 库文章中获取的 XAML 代码示例:
<ListBox Width="400" Margin="10" ItemsSource="{Binding Source={StaticResource myTodoList}}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=TaskName}" />
<TextBlock Text="{Binding Path=Description}"/>
<TextBlock Text="{Binding Path=Priority}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我正在寻找对<StackPanel>
元素用法的解释是this example。
->
这个面板将在 ListBox 中的什么位置存在?
它在 ItemTemplate 中的用途是什么?
可以使用任何 System.Windows.Controls.Panel 代替它,特别是网格吗?
我将如何使用一个<Grid>
元素作为 ListBox 中每个项目的模板?
这是我要追求的概念:
http://img151.imageshack.us/img151/7960/graphconcept.png
我已经使用一个<Path>
元素绘制了图表,那里没有问题。
我正在研究轴的标签,并且正在尝试使用<Grid>
ItemTemplate 中的元素 - 但我不知道网格在这种情况下应该如何运作,而 MSDN 在他们的示例中没有提及面板代码。
我的 Y 轴标签的 XAML 当前如下所示:
<ListBox Background="Transparent" BorderThickness="0" ItemsSource="{Binding Path=GraphLabelYData}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="{Binding Path=GraphLabelSpacing}" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="{Binding ElementName=GraphLabelYData, Path=GraphLabelMarkerLength}" />
</Grid.ColumnDefinitions>
<TextBlock HorizontalAlignment="Right" VerticalAlignment="Bottom" Text="{Binding Path=GraphLabelTag}" />
<Rectangle Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Stroke="Black" Fill="Black" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
这看起来正确吗?运行时没有显示任何内容,但我想确保在开始调试数据绑定和代码隐藏之前正确建模 XAML。