2010-06-21 5 views
3

HI tous,wpf dataagrid bidirectionnelle liaison à la base de données

Je veux lier WPF DataGrid dans deux sens. J'avais essayé suivante XAML:

<Grid> 
    <my:DataGrid x:Name="dataGrid" AutoGenerateColumns="False" Margin="8"> 
     <my:DataGrid.Columns> 
      <my:DataGridTextColumn Header="Header" Binding="{Binding pCode}" IsReadOnly="True" /> 
      <my:DataGridTextColumn Header="Header" Binding="{Binding pName}" IsReadOnly="True" /> 
      <my:DataGridTextColumn Header="Header" Binding="{Binding pStock}" IsReadOnly="True" /> 
      <my:DataGridTextColumn Header="Header" Binding="{Binding pGroup}" IsReadOnly="True" /> 
      <my:DataGridTextColumn Header="Header" Binding="{Binding pPrice, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />    
     </my:DataGrid.Columns> 
    </my:DataGrid> 
</Grid> 

MISE À JOUR

ProductsTableAdapters.TempTA tempTA = new WpfDataGridBinding.ProductsTableAdapters.TempTA(); 
Products.TempDataTable tempDT = new Products.TempDataTable(); 

public Window1() 
    { 
     InitializeComponent(); 

     tempDT = tempTA.GetData(); 
     dataGrid.ItemsSource = tempDT; 

    } 

Voilà comment je suis se liant à DataGrid. Maintenant, je veux mettre à jour la base de données chaque fois que je modifie le prix déposé dans DataGrid. Je plus de chose je voudrais demander que je mettrais à jour seulement la rangée dont la valeur a changé, pas toutes les rangées.

Merci de code S'il vous plaît (aide) moi ....

+0

N'est-ce pas la mise à jour dans la base de données ou non dans la collection vers laquelle pointe votre ItemsSource? –

+0

sa base de données non mise à jour, j'ai utilisé Data Access Layer pour DataGrid.ItemSource –

+0

Ensuite, la question a peu à voir avec WPF, mais avec l'appel SaveChanges() sur votre DAL. Pouvez-vous fournir quelques détails? –

Répondre

2

Vous n'avez pas besoin de définir explicitement deux voies de liaison. C'est le défaut. Parce que vous liez à TableAdapter, chaque fois que vous apportez des modifications dans la grille, ces modifications seront répercutées dans TableAdapter. Tout ce que vous devez faire maintenant est d'écrire ces changements dans la base de données. Dans votre événement RowChanged de TableAdapter, appelez simplement TableAdapter.Update pour écrire les modifications dans la base de données.

Questions connexes