何らかの理由で、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; }
}
EDIT1:
さらに調べてみると、Vector3D
(of System.Windows.Media.Media3D
) はクラスではなく構造体であることがわかりました。このため、の間接化がPosition.X
機能しないと思われます。
そうは言っても、「回転」バインディング以外をすべて削除してdouble[]
も、まだ機能しませんでした。
EDIT2 : 結合が非アクティブ化され、切り離されていることを報告する結合の診断。