WPF - 如何获取新插入的行数据行网格
本文关键字:插入 数据 网格 新插入 获取 WPF 何获取 | 更新日期: 2023-09-27 18:30:28
默认情况下,我的网格为空,我正在尝试获取用户插入到我的网格中的行数据,不知何故在提交更改后,我必须知道如何获取,我尝试使用网格。选定项 ,但它始终返回
空值 ,我的 XAML 代码如下所示
<DataGrid x:Name="grdInfo" Height="373" VerticalAlignment="Top" DockPanel.Dock="Top" Margin="0,10,0,0" RowEditEnding="grdInfoSave" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="No" Binding="{Binding No}" Width="50" />
<DataGridTextColumn Header="Description" Binding="{Binding Description}" Width="*" />
<DataGridTextColumn Header="Total" Binding="{Binding Total}" Width="120" />
</DataGrid.Columns>
</DataGrid>
我用于提交编辑的 Cs 代码如下
private void grdInfoSave(object sender, DataGridRowEditEndingEventArgs e )
{
if (e.EditAction == DataGridEditAction.Commit)
{
//Try to get the user inserted value and process it
DataRowView row = (DataRowView)grdInfo.SelectedItem;
int No = Convert.ToInt32(row["No"]);
}
}
用于生成表的代码
private void genTable()
{
DataTable dtInfo = new DataTable();
dtInfo.Columns.Add(new DataColumn("No", Type.GetType("System.Int32")));
dtInfo.Columns.Add(new DataColumn("Description", Type.GetType("System.String")));
dtInfo.Columns.Add(new DataColumn("Total", Type.GetType("System.String")));
grdInfo.ItemsSource = dtInfo.DefaultView;
}
我需要的是当用户输入 1 作为No
列,Apple 用于描述,200 作为总数时,我希望获得整行数据。
您可以使用以下命令访问新插入的数据网格行。
private void grdInfoSave(object sender, DataGridRowEditEndingEventArgs e )
{
if (e.EditAction == DataGridEditAction.Commit)
{
//Try to get the user inserted value and process it
DataRow newrow= e.Row.DataContext as DataRow; // If datarow does not work, replace will required databind class.
String new_desc = newrow["Description"].ToString();
DataRowView row = (DataRowView)grdQuoteDetail.SelectedItem;
int No = Convert.ToInt32(row["No"]);
}
}
来源 - http://blogs.u2u.be/diederik/post/2009/09/29/Inserting-Updating-and-Deleting-from-a-WPF-DataGrid.aspx