2010-06-21 126 views
3

所有,雙向wpf datagrid綁定到數據庫

我想以兩種方式綁定WPF數據網格。我曾嘗試下面的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> 

修訂

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

public Window1() 
    { 
     InitializeComponent(); 

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

    } 

這是我怎麼綁定到數據網格。現在我想更新數據庫,只要我更改DataGrid中的價格提交。我更想要問的是,我只更新其值已更改的行,而不是所有行。

感謝 請碼(幫助)我....

+0

它不在數據庫中更新,或者不在您的ItemsSource指向的集合中更新? – 2010-06-21 13:20:35

+0

它沒有更新數據庫,我用DataGrid.ItemSource的數據訪問層 – 2010-06-21 13:37:17

+0

然後這個問題與WPF沒有多大關係,但是在DAL上調用了SaveChanges()。你能提供一些細節嗎? – 2010-06-21 13:42:48

回答

2

你並不需要明確設置雙向綁定。這是默認設置。由於您綁定了TableAdapter,因此每當您在網格中進行更改時,這些更改都會反映在TableAdapter中。您現在需要做的就是將這些更改寫入數據庫。在TableAdapter的RowChanged事件中,只需調用TableAdapter.Update即可將更改寫入數據庫。