我有DataGrid
绑定到DataTable
。我希望DataGrid
总是至少有十(空)行,如果没有足够的实际数据项(数据一点一点地进入)。
一种方法是在初始化时轻松地向DataTable
添加十个空行。但是当一个真实的数据项出现时,我无法轻松添加该行,我必须找到第一个空行来覆盖它,这不是很方便。
那么有人知道更聪明/内置的方法来实现这个目标吗?
答案 0 :(得分:0)
无论从何方接近它都会变得一团糟。我会说你最好的选择(如果您的网格单元格内容不会被包裹)是使用可视化画笔(带有线条)作为您的DataGrid的背景。
更新1 - XAML 它是alwast那里,诀窍是使用MinHeight,由于平铺背景,它将产生空白物品的视觉。如果您的网格将填充真实数据,背景将展开,渲染更多行。
我没有尝试的一件事是它如何处理滚动。
以下是一个例子:
<Grid>
<Grid.Resources>
<VisualBrush x:Key="StripesBrush" TileMode="Tile" Viewport="0,0,5,20"
Viewbox="0,0,10,10" ViewportUnits="Absolute"
ViewboxUnits="Absolute">
<VisualBrush.Visual>
<Line X1="0" X2="10000" Y1="0" Y2="0" Stroke="DarkGray"/>
</VisualBrush.Visual>
</VisualBrush>
</Grid.Resources>
<DataGrid x:Name="g" AutoGenerateColumns="False"
GridLinesVisibility="None"
MinHeight="100"
Height="100"
VerticalAlignment="Top"
Background="{StaticResource StripesBrush}">
<DataGrid.Columns>
<DataGridTextColumn Header="A" Width="Auto" Binding="{Binding Item1}">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Background" Value="Transparent"></Setter>
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="B" Width="Auto" Binding="{Binding Item2}" />
</DataGrid.Columns>
</DataGrid>
</Grid>
答案 1 :(得分:0)
如果仅用于布局,您只需在实际数据网格下添加第二个数据网格,其中包含10个空行。或者你采取Dmitry贴出的方式并使用视觉刷