This is not an error. A submitChange operation is asynchronous so you have to detect that it is completed before doing something else.
One solution could be to block the user from clicking on the button before the operation is completed.
Since you are using a Telerik controls, you can use a busy indicator.
private void btnUserAction_Click(object sender, RoutedEventArgs e)
{
myBusyIndicator.IsBusy = true;
// DO your stuff
var submitOperation = myContext.SubmitChanges();
submitOperation.Completed += (s, e) =>
{
// It is completed, now the user can click on the button again
myBusyIndicator.IsBusy = false;
}
}
EDIT : The busy indicator should be defined in your Xaml, like this :
<Telerik:RadBusyIndicator x:Name="myBusyIndicator">
<Grid x:Name="LayoutRoot" >
<Button Name="btnUserAction" Click="btnUserAction_Click" />
</Grid>
</Telerik:RadBusyIndicator>