WPF数据表格双向绑定数据库

5

大家好,

我希望能够双向绑定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的方式。现在,每当我更改DataGrid中的价格字段时,我都希望更新数据库。另外一个问题是,我只想更新值已更改的行,而不是所有行。
谢谢,请为我编写代码(帮助)。

你的数据是否没有更新到数据库中,或者是你的ItemsSource指向的集合中没有更新? - H H
它没有更新数据库,我使用了数据访问层来设置DataGrid.ItemSource。 - Raj
那么这个问题与WPF关系不大,而是与在DAL上调用SaveChanges()有关。你能提供一些细节吗? - H H
Henk Holterman,请查看我的更新信息并给我建议。 - Raj
1个回答

4

您不需要显式设置双向绑定,因为这是默认的。因为您正在绑定到TableAdapter,所以无论您在网格中进行何种更改,这些更改都将反映在TableAdapter中。现在您需要做的就是将这些更改写入数据库。在TableAdapter的RowChanged事件中,只需调用TableAdapter.Update来将更改写入数据库即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接