c#中的TextBlock在数据网格中的RowEditEnding中获取空值

c#中的TextBlock在数据网格中的RowEditEnding中获取空值,c#,xml,wpf,datagrid,C#,Xml,Wpf,Datagrid,我在datagrid中使用RowEditEnding事件来获取更新的行,并作为回报更新我的数据库 private void OnUpdateOrInsertItem(object sender,DataGridRowEditEndingEventArgs e) { DataGridRow row1 = e.Row; int row_index = ((DataGrid)sender).ItemContainerGenerator.IndexFro

我在datagrid中使用RowEditEnding事件来获取更新的行,并作为回报更新我的数据库

    private void OnUpdateOrInsertItem(object sender,DataGridRowEditEndingEventArgs e)
    {
        DataGridRow row1 = e.Row;

        int row_index = ((DataGrid)sender).ItemContainerGenerator.IndexFromContainer(row1);
        int numberOfColumns = ((DataGrid)sender).Columns.Count;
        DataGridCell RowColumn = ((DataGrid)sender).Columns[1].GetCellContent(row1).Parent as DataGridCell;
        string CellValue = ((TextBlock)RowColumn.Content).Text;
        MessageBox.Show(CellValue);
    }
但当我改变在messageBox中打印的单元格时,它在messageBox上返回一个空值。 我认为这个问题与线程有关 这是我的xml代码

<Grid>
    <DataGrid x:Name="datagrid1" AutoGenerateColumns="true" HorizontalAlignment="Left" Margin="0,55,0,0" VerticalAlignment="Top" Height="248" Width="672"  RowEditEnding="OnUpdateOrInsertItem" PreviewKeyDown="OnDeleteItem"/>
    <Button Content="Show Database" HorizontalAlignment="Left" Margin="54,10,0,0" VerticalAlignment="Top" Width="98" RenderTransformOrigin="-0.193,-13.506" Height="29" Click="Button_Click_1"/>
    <ComboBox x:Name="comboBox1" SelectedIndex="0" HorizontalAlignment="Left" Margin="469,17,0,0" VerticalAlignment="Top" Width="120" Loaded="ComboBox_Loaded"
    SelectionChanged="ComboBox_SelectionChanged"/>
</Grid>

如何解决此问题,或者是否有其他方法在RowEditEnding事件中获取更新的行

  • 使用(和,这里由数据网格自动完成)。更新后的值将位于绑定(视图)模型中,无需使用该事件
  • 不要使用
    ItemContainerGenerator
    。如果需要访问UI项,请将相关属性绑定到基础视图模型