在我的WPF应用程序中,DataGrid的定义如下。
<my:DataGrid AutoGenerateColumns="False"
Height="212"
HorizontalAlignment="Left"
Margin="28,339,0,0"
Name="dgChg"
VerticalAlignment="Top"
Width="827"
SelectionMode="Single"
GridLinesVisibility="All"
FontSize="12"
SelectionUnit="Cell"
CanUserAddRows="False"
KeyboardNavigation.TabNavigation="Local"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
CanUserResizeColumns="True"
CanUserSortColumns="False"
EnableRowVirtualization="True"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto"
TabIndex="9">
<my:DataGrid.Columns>
<my:DataGridCheckBoxColumn Header="Check" Binding="{Binding Path = SELECT}"/>
<my:DataGridTextColumn Binding="{Binding Path=CHG}" Visibility="Visible" Header="Chg Desc" IsReadOnly="True" KeyboardNavigation.IsTabStop="False"/>
<my:DataGridTextColumn Binding="{Binding Path=Amount}" PBOValidation:TextBoxMaskBehavior.Mask="Decimal"
Visibility="Visible" Header="Amount" IsReadOnly="False" KeyboardNavigation.IsTabStop="True"/>
</my:DataGrid.Columns>
</my:DataGrid>
当我删除Amount单元格中存在的现有值时,通过输入后退空格然后检查Amount字段值在某些按钮单击事件中看起来单元格仍然处于编辑模式并且我没有获得最新值细胞。我试图通过下面的按钮点击获取值。
DataTable dtCMICharges = ((DataView)dgChg.ItemsSource).ToTable();
即使我在上面的行之前调用DataGrid的CancelEdit()
或CommitEdit()
方法也没用。我总是在删除之前获取旧值而不是最新值。
请帮助我了解如何获得最新的细胞价值。