2009-09-14 17 views
9

Ho un programma in cui ho bisogno che l'utente inserisca i dati in un datagrid. Penso che il semplice atto di impostare CanUserAddRows sia sufficiente per consentire all'utente di aggiungere nuove righe, ma sembra che non lo taglierà.Datagrid modificabile in WPF

C'è qualcos'altro che devo definire per farli funzionare? Il mio datagrid ha caselle combinate e caselle di testo in loro quindi è controlli abbastanza comuni.

Il codice che ho finora è questo

<dg:Datagrid Name="GridFournisseur" ItemsSource="{Binding}" 
    Margin="423,41,23.5,0" Height="193" VerticalAlignment="Top" 
    CanUserAddRows="True" CanUserDeleteRows="True" IsTabStop="True" RowHeight="12"       SelectionUnit="CellOrRowHeader"> 

    <dg:DataGrid.Columns> 

     <dg:DataGridComboBoxColumn Header="Fournisseur" Width="*" MinWidth="150"             
             IsReadOnly="False" /> 

     <dg:DataGridTextColumn Header="Prix" Width="SizeToHeader" MinWidth="50" 
             Binding="{Binding Categorie}" 
             IsReadOnly="False"/> 
     <dg:DataGridTextColumn Header="Délai" Width="SizeToHeader" MinWidth="50" 
             Binding="{Binding NoPiece}" 
             IsReadOnly="False"/> 
    </dg:DataGrid.Columns> 
</dg:DataGrid> 

devo solo questo DataGrid in cui vorrei modificare il contenuto e all'inizio è vuota.

+0

La "risorsa articoli" è impostata su ObservableCollection ? –

+0

Per il momento, non ho ItemSource (potrebbe essere il problema ...) In questo programma, vorrei normalmente mettere un itemSource come una lista (Of Something) ma se ho bisogno di mettere qualcos'altro allora da tutti i significati Lo farò. –

+0

Forse non sto facendo bene. Quello che mi piacerebbe fare è avere la stessa cosa di una normale applicazione Windows Form. Significa avere un datagrid in cui è sempre visibile una 'nuova riga' per aggiungere dati in essa. Potrei anche voler cancellare una riga. –

risposta

7

Potrebbe trattarsi di una serie di cose. Si prega di dare un'occhiata a this article.

Il problema è molto probabilmente legato a una vista raccolta che non supporta l'aggiunta di elementi. Credo che la griglia potrebbe essere in attesa di una vista raccolta che implementa IEditableCollectionView o IBindingList, interfacce che supportano l'aggiunta di elementi.

1

CanUserAddRows è la proprietà corretta. Forse condividi qualche codice di esempio.