2016-05-24 6 views
1

Im Wesentlichen verwende ich ein Datagrid in WPF. Wenn es eine Zeile, die keine Daten enthält, möchte ich es eine leere Zeile sein, und ich möchte es, wie unten angezeigt:Formatieren von Zeilen in einem Datagrid, um leer zu bleiben

enter image description here

Jedoch habe ich echte Probleme habe versucht, dies zu erreichen. Ich kann es tun, indem ich separate Datagrids erstelle und die Daten in jedes mit einem Konverter spalte, aber es wird sehr chaotisch und macht den Code schwierig zu pflegen.

Ich kann es auch tun, indem Sie die Zeile leer lassen, die wie unten aussieht:

enter image description here

jedoch, die nicht ganz sieht, wie ich möchte. Jede Hilfe wird geschätzt und danke im Voraus.

-Code für das Datenraster:

<DataGrid Width="265" RowHeight="11.5" CanUserAddRows="False" ItemsSource="{Binding Coupon.SelectionAreas[0].SelectionRows 
           ,Converter={StaticResource DateTimeToSplitDataGridConverter} 
           ,ConverterParameter='Table13Bet'}" AutoGenerateColumns="False" Background="Transparent" RowBackground="Transparent" HeadersVisibility="None" BorderBrush="LightGray" BorderThickness="1,0,1,0" AlternatingRowBackground="{x:Null}" GridLinesVisibility="Horizontal" IsReadOnly="True" SelectionMode="Single" > 
         <DataGrid.Columns> 
          <DataGridTemplateColumn Width="27"> 
           <DataGridTemplateColumn.CellTemplate > 
            <DataTemplate DataType="r:SelectionRow"> 
             <TextBlock Text="{Binding ExpectedOffDate,StringFormat='HH:mm'}" VerticalAlignment="Top" FontFamily="Arial Narrow" FontSize="7.8" HorizontalAlignment="Center" Foreground="{Binding Path=ColourForeground, Converter={StaticResource HexToForegroundColourConverter}}" 
             Background="{Binding Path=ColourBackground, Converter={StaticResource HexToBackgroundColourConverter}}" /> 
            </DataTemplate> 
           </DataGridTemplateColumn.CellTemplate> 
          </DataGridTemplateColumn> 
          <DataGridTemplateColumn Width="27" > 
           <DataGridTemplateColumn.CellTemplate> 
            <DataTemplate DataType="r:SelectionRow"> 
             <TextBlock Text="{Binding SelectionHome.Odd, Converter={StaticResource ChangeZeroToOneOddsToTbcConverter}}" FontFamily="Arial Narrow" VerticalAlignment="Top" FontSize="7.8" HorizontalAlignment="Center" Background="{Binding Path=ColourBackground, Converter={StaticResource HexToBackgroundColourConverter}}" /> 
            </DataTemplate> 
           </DataGridTemplateColumn.CellTemplate> 
          </DataGridTemplateColumn> 

          <DataGridTemplateColumn Width="80" > 
           <DataGridTemplateColumn.CellTemplate> 
            <DataTemplate DataType="r:SelectionRow"> 
             <TextBlock Text="{Binding SelectionHome.DisplayName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" FontFamily="Arial Narrow" FontSize="7.8" HorizontalAlignment="Left" Background="{Binding Path=ColourBackground, Converter={StaticResource HexToBackgroundColourConverter}}" /> 
            </DataTemplate> 
           </DataGridTemplateColumn.CellTemplate> 
          </DataGridTemplateColumn> 


          <DataGridTemplateColumn Width="24"> 
           <DataGridTemplateColumn.CellTemplate> 
            <DataTemplate DataType="r:SelectionRow"> 
             <TextBlock Text="{Binding SelectionDraw.Odd, Converter={StaticResource ChangeZeroToOneOddsToTbcConverter}}" VerticalAlignment="Top" FontFamily="Arial Narrow" FontSize="7.8" HorizontalAlignment="Center" Background="{Binding Path=ColourBackground, Converter={StaticResource HexToBackgroundColourConverter}}" /> 
            </DataTemplate> 
           </DataGridTemplateColumn.CellTemplate> 
          </DataGridTemplateColumn> 

          <DataGridTemplateColumn Width="80" > 
           <DataGridTemplateColumn.CellTemplate> 
            <DataTemplate DataType="r:SelectionRow"> 
             <TextBlock Text="{Binding SelectionAway.DisplayName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" FontFamily="Arial Narrow" FontSize="7.8" HorizontalAlignment="Right" Background="{Binding Path=ColourBackground, Converter={StaticResource HexToBackgroundColourConverter}}" /> 
            </DataTemplate> 
           </DataGridTemplateColumn.CellTemplate> 
          </DataGridTemplateColumn> 

          <DataGridTemplateColumn Width="25" > 
           <DataGridTemplateColumn.CellTemplate> 
            <DataTemplate DataType="r:SelectionRow"> 
             <TextBlock Text="{Binding SelectionAway.Odd, Converter={StaticResource ChangeZeroToOneOddsToTbcConverter}}" VerticalAlignment="Top" FontFamily="Arial Narrow" FontSize="7.8" HorizontalAlignment="Center" Background="{Binding Path=ColourBackground, Converter={StaticResource HexToBackgroundColourConverter}}" /> 
            </DataTemplate> 
           </DataGridTemplateColumn.CellTemplate> 
          </DataGridTemplateColumn> 

         </DataGrid.Columns> 
        </DataGrid> 
+0

Können Sie uns den entsprechenden Code zeigen? –

+0

Codes wurden hinzugefügt – Spitfire5793

Antwort

0

es möglich ist leer RowDetails unter bestimmten Reihen

<DataGrid> 
    <DataGrid.RowDetailsTemplate> 
     <DataTemplate> 
      <Grid Height="20"/> 
     </DataTemplate> 
    </DataGrid.RowDetailsTemplate> 

    <DataGrid.RowStyle> 
     <Style TargetType="DataGridRow"> 
      <Setter Property="DetailsVisibility" 
        Value="{Binding Path=ShowEmptyRow, 
            Converter={StaticResource BoolToVisible}}"/> 
     </Style> 
    </DataGrid.RowStyle> 
<DataGrid> 

ShowEmptyRow ist einige bool Eigenschaft anzuzeigen, dass es anzeigt, sollte ein leerer Raum unter Strom DataGridRow sein

+0

Ich habe mit dem, was Sie vorgeschlagen haben, ein Problem gehabt, aber das Problem, das ich habe, ist, kann ich nicht festlegen, die ShowEmptyRow Bindung in jeder einzelnen Zeile zu nehmen, es fragt nach etwas ähnlich wie meine ItemSource. Ich sehe keinen Weg, den Datentyp so einzustellen, wie ich es in den Zellenvorlagen getan habe. Ist das da weg? – Spitfire5793

+0

Ich habe es funktioniert, scheint es zur Laufzeit in Ordnung, nur in der Design-Zeit war es lustig. Vielen Dank – Spitfire5793

Verwandte Themen