---恢复内容开始---

正如标题中的两个拼接的单词所说,DataTemplate就是数据显示的模板,而ControlTemplate是控件自身的模板。(个人理解,错误请指出,谢谢)

我们看这二者在两类不同的控件中如何使用:

一:ItemsControl

  我们可以利用ControlTemplate来设置控件外表,用DataTemplate来填充控件内容。

<Page.Resources>
        <DataTemplate x:Key="dataTemplate">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition></ColumnDefinition>
                    <ColumnDefinition></ColumnDefinition>
                    <ColumnDefinition></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="0"  Text="{Binding Name}"></TextBlock>
                <TextBlock Grid.Column="1"  Text="{Binding Age}"></TextBlock>
                <TextBlock Grid.Column="2"   Text="{Binding Sex}"></TextBlock>
            </Grid>
        </DataTemplate>
    </Page.Resources>
    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        
        <ListBox x:Name="itemsControl" Width="300" Height="400" ItemsSource="{Binding Mode=OneWay}" ItemTemplate="{StaticResource dataTemplate}">
            <ListBox.Template>
                <ControlTemplate>
                    <Grid >
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition></ColumnDefinition>
                            <ColumnDefinition></ColumnDefinition>
                            <ColumnDefinition></ColumnDefinition>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="auto"></RowDefinition>
                            <RowDefinition></RowDefinition>
                        </Grid.RowDefinitions>
                        <TextBlock Grid.Row="0" Grid.Column="0" FontSize="20" Text="姓名"></TextBlock>
                        <TextBlock Grid.Row="0" Grid.Column="1" FontSize="20" Text="年龄"></TextBlock>
                        <TextBlock Grid.Row="0" Grid.Column="2" FontSize="20" Text="性别"></TextBlock>
                        <ItemsPresenter   Grid.Row="1" Grid.ColumnSpan="3">
                           
                        </ItemsPresenter>
                        
                    </Grid>
                    
                </ControlTemplate>
            </ListBox.Template>

            
        </ListBox>
        <Button x:Name="button" Content="Button" HorizontalAlignment="Left" Height="56" Margin="102,157,0,0" VerticalAlignment="Top" Width="190" Click="button_Click"/>
    </Grid>
View Code

相关文章: