代码之家  ›  专栏  ›  技术社区  ›  SlowLearner

wpf数据模板中的额外行

  •  1
  • SlowLearner  · 技术社区  · 6 年前

    wpf datatemplate规范中的额外行

    这似乎是对来自Microsoft的WPF数据绑定的一个很好的概述: https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/data-binding-overview

    该页面有指向PDF下载的链接(看起来比页面本身更全面): https://docs.microsoft.com/en-us/dotnet/opbuildpdf/framework/wpf/data/toc.pdf?branch=live 以及一个示例应用程序: http://go.microsoft.com/fwlink/?LinkID=163703 .

    问题:

    在示例应用程序文件中: DataBindingLabApp.xaml (~第50行) 为单个列表项定义数据模板。模板指定了4行,但只使用了两行…有没有一个很好的理由使用未使用的行?

       <DataTemplate DataType="{x:Type src:AuctionItem}">
            <Border BorderThickness="1" BorderBrush="Gray"
                    Padding="7" Name="border" Margin="3" Width="500">
                <Grid>
    
                    <Grid.RowDefinitions>
                        <RowDefinition/>
                        <RowDefinition/>
                        <RowDefinition/>   <!-- not needed? -->
                        <RowDefinition/>   <!-- not needed? -->
                    </Grid.RowDefinitions>
    
                    <Grid.ColumnDefinitions>
                        ...
    

    我删除了其中的两行,据我所知(通过比较屏幕截图),多余的行对列表项的外观没有影响。有什么理由保留它们吗?我唯一能想到的是将来的一些功能 (但这似乎是一个糟糕的做法,不是吗?)

    1 回复  |  直到 6 年前
        1
  •  1
  •   mm8    6 年前

    有什么理由保留它们吗?

    除非里面有什么东西 Grid 设置了 Grid.Row 将属性附加到 2 3 您可以删除它们,除非您希望前两行(只有两行)只填充 网格 的总高度。

    RowDefinition 默认高度为 Auto 这意味着可用空间将平均分配给 <RowDefinition/> 定义的元素。

    …据我所知(通过比较屏幕截图),额外的行对列表项的外观没有影响。有什么理由保留它们吗?

    不。

    我唯一能想到的是一些未来的功能(但这看起来是一个糟糕的实践,不是吗?)

    是的,那你最好以后再加。