出于某种原因,当我更新 DataGrid 中的值时,它们不会保留在内存对象中吗?实际上,在编辑单元格期间会显示新值,但是一旦我切换到下一行,这些值就会恢复。
这是我的 DataGrid 定义:
<DataGrid ItemsSource="{Binding Items, Mode=TwoWay}" IsSynchronizedWithCurrentItem="True" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Position X" Binding="{Binding Position.X, Mode=TwoWay}"/>
<DataGridTextColumn Header="Position Y" Binding="{Binding Position.Y, Mode=TwoWay}"/>
<DataGridTextColumn Header="Position Z" Binding="{Binding Position.Z, Mode=TwoWay}"/>
<DataGridTextColumn Header="Rotation" Binding="{Binding Angles[2], Mode=TwoWay}"/>
</DataGrid.Columns>
</DataGrid>
对象是:
public class Box{
public Vector3D Position { get; set; }
public double[] Angles { get; set; }
}
编辑1:
经过进一步检查,我注意到Vector3D
(of System.Windows.Media.Media3D
) 是一个结构,而不是一个类。因此,我怀疑间接的Position.X
不起作用。
话虽如此,当我删除了除“旋转”绑定之外的所有内容时double[]
,它仍然无法正常工作。
EDIT2: 绑定报告绑定正在停用和分离的诊断。