column - wpf datagrid style




빈 행으로 DataGrid 채우기 (2)

DataTable 바인딩 된 DataGrid 가 있습니다. DataGrid 에 실제 데이터 항목이 충분하지 않은 경우 (데이터가 조금씩) 10 개 (빈) 행을 항상 갖고 싶습니다.

한 가지 방법은 초기화시 DataTable 에 10 개의 빈 행을 쉽게 추가하는 것입니다. 그러나 실제 데이터 항목이 들어 오면 행을 쉽게 추가 할 수 없으며 처음 빈 행을 찾아서 덮어 써야합니다. 그다지 편리하지는 않습니다.
그래서 누군가는 이것을 달성하는 더 똑똑한 / 내장 된 방법을 알고 있습니까?


레이아웃 용이라면 실제 데이터 격자 아래에 10 개의 빈 행이있는 두 번째 DataGrid를 추가하기 만하면됩니다. 또는 드미트리가 게시 한 시각적 브러시를 사용하십시오.


어느 쪽이 접근했는지에 상관없이 엉망이 될 것입니다. 가장 좋은 방법은 GridGrid의 배경으로 비주얼 브러시 (라인 포함)를 사용하는 것입니다.

업데이트 1 - XAML 그것은 거기에있어, 트릭은 기와 배경 덕분에 빈 항목의 비전을 생성합니다 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>





datagrid