Sẽ rất lộn xộn, bất kể từ phía nào nó được tiếp cận. Tôi muốn nói đặt cược tốt nhất của bạn (miễn là nội dung ô lưới của bạn sẽ không được bao bọc) là sử dụng một cọ vẽ trực quan (với các dòng) làm nền của DataGrid của bạn.
CẬP NHẬT 1 - XAML Thật tuyệt vời ở đó, mẹo là sử dụng MinHeight, điều này sẽ tạo ra tầm nhìn về các vật phẩm trống nhờ nền lát. Nếu lưới của bạn sẽ được điền bằng dữ liệu thực mà nền sẽ mở rộng, hiển thị nhiều dòng hơn.
Một điều tôi đã không thử là cách nó sẽ xử lý cuộn.
Dưới đây là một ví dụ:
<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>
Nguồn
2011-11-24 13:50:38
Làm thế nào về việc thêm các mục trống vào bộ sưu tập của bạn nếu 'Đếm' của bộ sưu tập nhỏ hơn 10? –
Đó là những gì tôi đã nói, tôi luôn phải kiểm tra xem có bao nhiêu hàng thực, và thêm hoặc xóa các hàng trống. Tôi hy vọng sẽ có một cách tiếp cận thông minh hơn hoặc được xây dựng trong. – SpeziFish
Tại sao bạn cần xóa hàng? Ngoài ra bạn không cần phải ghi đè lên những cái hiện có, chỉ cần rebind toàn bộ bộ sưu tập nếu thời gian tiếp theo lớn hơn 10. –