【问题标题】:two way wpf datagrid binding to database两种方式 wpf datagrid 绑定到数据库
【发布时间】:2011-03-06 07:37:26
【问题描述】:

大家好,

我想以两种方式绑定 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 中的价格时,我都想更新数据库。我更想问的是,我只会更新值已更改的行,而不是所有行。

谢谢 请编码(帮助)我....

【问题讨论】:

  • 您的 ItemsSource 指向的数据库中是否没有更新或集合中没有更新?
  • 它没有更新数据库,我为 DataGrid.ItemSource 使用了数据访问层
  • 那么这个问题与 WPF 几乎没有关系,而是在 DAL 上调用 SaveChanges()。你能提供一些细节吗?
  • Henk Holterman 请查看我的更新信息并建议我。

标签: wpf data-binding datagrid wpfdatagrid


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-03-01
    • 1970-01-01
    • 2012-07-31
    • 2012-03-23
    • 2017-01-03
    • 1970-01-01
    • 2016-02-27
    • 2017-02-11
    • 2022-10-07
    相关资源
    最近更新 更多