2013-12-17 16 views
7

Ho un semplice controllo di dati definiti come segueC'è un modo per lo stile un WPF DataGrid NewItem Segnaposto

<DataGrid x:Name="ScheduleDataGrid" AutoGenerateColumns="False" CanUserAddRows="True" CanUserDeleteRows="True" Margin="5" ItemsSource="{Binding ScheduleItems}"> 
    <DataGrid.Columns> 

     <DataGridTextColumn...></DataGridTextColumn> 
     .... 
     <DataGridTextColumn...></DataGridTextColumn> 
    </DataGrid.Columns> 
</DataGrid> 

Ho specificato CanUserAddRows = "True". Come pubblicizzato, mette una riga vuota nella parte inferiore della griglia per consentire all'utente di aggiungere una nuova riga.

C'è un modo per assegnare un nuovo elemento segnaposto indipendentemente dal resto della griglia?

risposta

8

Sì, è possibile modificare quella riga di segnaposto.

Dai un'occhiata a questo esempio che ho appena creato.

<Window.Resources> 
    <Style TargetType="{x:Type DataGridRow}"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding}" Value="{x:Static CollectionView.NewItemPlaceholder}"> 
       <Setter Property="Background" Value="Yellow"/> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</Window.Resources> 
<Grid> 
    <DataGrid AutoGenerateColumns="False" CanUserAddRows="True" ItemsSource="{Binding List}"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Header="Test" Binding="{Binding Path=Name, Mode=TwoWay}"/> 
     </DataGrid.Columns> 
    </DataGrid> 
</Grid> 

Quella riga segnaposto verrà visualizzata con sfondo giallo.

+0

C'è un modo per posizionare il 'NewItemPlaceHolder' nella riga superiore della griglia? –

+1

@AbinMathew, Yes ScheduleItems.NewItemPlaceHolderPosition = System.ComponentModel.NewItemPlaceholderPosition.AtBeginning; –