DataForms, кажется, обновляют свой CurrentItem, как только пользователь выходит из поля. Это происходит даже тогда, когда AutoCommit = false. Побочным эффектом такого поведения является то, что другие элементы управления, которые связаны с обновлением данных, в то время как пользователь редактирует данные, а не когда пользователь нажимает кнопку ОК, чтобы принять изменения в DataForm. Есть ли способ изменить это поведение, чтобы отложить запись данных в CurrentItem, когда пользователь принимает изменения?
РЕДАКТИРОВАТЬ: Вот большая часть Xaml для DataForm, которую я использую:
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, а затем, если пользователь примет изменение, данные копируются обратно оригинальный объект. Я надеюсь, что есть лучшее решение.