【发布时间】:2014-11-16 16:06:00
【问题描述】:
默认情况下我的网格是空的,我试图获取用户插入到我的网格的行数据,不知何故在提交更改后,我必须知道如何获取,我尝试使用 grid.SelectedItem ,但它总是返回空,
我的 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 为总,我希望得到整行数据。
【问题讨论】:
-
用户在哪里输入数据?
-
@AfzaalAhmadZeeshan 在 GUI 中,我允许属性 CanUserAddRow ,这意味着用户可以自己添加行
-
不不,我的意思是,它会是动态的吗?而且,你没有任何类来填充数据吗?
-
@AfzaalAhmadZeeshan 我已经发布了我生成表格的方式