2009-09-14 11 views
9

J'ai un programme où j'ai besoin de l'utilisateur pour entrer des données dans une grille de données. Je pense que le simple fait de définir le 'CanUserAddRows' serait suffisant pour permettre à l'utilisateur d'ajouter de nouvelles lignes, mais il semble que cela ne le coupera pas.Datagrid modifiable dans WPF

Y at-il autre chose que je dois définir pour les faire fonctionner? Mon DataGrid a des listes déroulantes et des zones de texte, ce sont donc des contrôles assez communs.

Le code que j'ai est jusqu'à présent cette

<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> 

J'ai juste ce dataGrid dans lequel je voudrais modifier son contenu et au début, il est vide.

+0

Votre 'ItemsSource' est-il défini sur ObservableCollection ? –

+0

Pour l'instant, je n'ai pas ItemSource (peut-être le problème ...) Dans ce programme, je mettrais normalement un itemSource en Liste (Of Something) mais si j'ai besoin de mettre quelque chose d'autre alors par tout moyen Je vais. –

+0

Peut-être que je ne le fais pas correctement. Ce que je voudrais faire est d'avoir la même chose que dans une application Windows Form normale. Signification ayant une grille de données dans laquelle une 'nouvelle ligne' est toujours visible pour que j'y ajoute des données. Je pourrais aussi vouloir supprimer une ligne. –

Répondre

7

Il pourrait s'agir d'un certain nombre de choses. S'il vous plaît jeter un oeil à this article.

Le problème est très probablement lié à une vue de collection qui ne prend pas en charge l'ajout d'éléments. Je crois que la grille peut s'attendre à une vue de collection qui implémente IEditableCollectionView ou IBindingList, interfaces qui prennent en charge l'ajout d'éléments.

1

CanUserAddRows est la bonne propriété. Peut-être partager un exemple de code.

Questions connexes