DataForms は、ユーザーがタブでフィールドから出るとすぐに CurrentItem を更新するように見えます。これは、AutoCommit = false の場合でも発生します。この動作の副作用は、データにバインドされている他のコントロールが、ユーザーが [OK] をクリックして DataForm の変更を受け入れるときではなく、ユーザーがデータを編集しているときに更新されることです。その動作を変更して、ユーザーが変更を受け入れたときに CurrentItem へのデータの書き込みを延期する方法はありますか?
編集:私が使用している DataForm の Xaml のほとんどは次のとおりです。
xmlns:DataFormControls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm.Toolkit"
<DataFormControls:DataForm x:Name="dataForm" AutoCommit="False" AutoEdit="False">
<DataFormControls:DataForm.EditTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<DataFormControls:DataField Label="Title">
<TextBox Text="{Binding Title, Mode=TwoWay}" Style="{StaticResource TextBoxStyle}"/>
</DataFormControls:DataField>
<DataFormControls:DataField Label="First Name">
<TextBox Text="{Binding FirstName, Mode=TwoWay}"/>
</DataFormControls:DataField>
<DataFormControls:DataField Label="Middle Name">
<TextBox Text="{Binding MiddleName, Mode=TwoWay}"/>
</DataFormControls:DataField>
<DataFormControls:DataField Label="Last Name">
<TextBox Text="{Binding LastName, Mode=TwoWay}"/>
</DataFormControls:DataField>
</StackPanel>
</DataTemplate>
</DataFormControls:DataForm.EditTemplate>
</DataFormControls:DataForm>
編集 2: この動作を回避するために私が使用している回避策は、編集するオブジェクトのコピーを作成し、それを DataForm.CurrentItem プロパティに設定することです。ユーザーが編集を受け入れると、データは元のオブジェクトにコピーされます。 . そこにもっと良い解決策があることを願っています。