我曾经尝试了几种不同的方法来实现一个简单的DataTemplate示例,但是一直没有成功。下面的XAML数据上下文是在代码后台中设置的。这里包含的两个代码示例都被包裹在我的应用程序中的“<Grid>
”元素中,但那是唯一需要考虑的外部因素。第一个代码示例有效,它可以显示数据。但是,如果我将功能放在DataTemplate中,然后尝试使用该模板,它就无法工作。
有效示例:
<Canvas Height="100" Width="300">
<TextBlock Text="{Binding Path=DataSheet.Item.ClassId}" Canvas.Left="10"></TextBlock>
<TextBlock Text="{Binding Path=DataSheet.Item.ClassName}" Canvas.Right="100"></TextBlock>
</Canvas>
不起作用的示例(但不会抛出错误):
<Window.Resources>
<DataTemplate x:Key="FirstTemplate">
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="Key" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBox Text="{Binding ClassId}"></TextBox>
<TextBox Text="{Binding ClassName}"></TextBox>
</Grid>
</DataTemplate>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{Binding Path=DataSheet.Item}" Grid.IsSharedSizeScope="True"
HorizontalAlignment="Stretch"
ItemTemplate="{StaticResource ResourceKey=FirstTemplate}"/>
</Grid>
任何关于我做错了什么的建议都将不胜感激。谢谢。