BindingGroup.UpdateSources Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Exécute le convertisseur sur la liaison et les objets ValidationRule qui ont la propriété ValidationStep définie à RawProposedValue, ConvertedProposedValue ou UpdatedValue et enregistre les valeurs des cibles dans les objets sources si toutes les règles de validation réussissent.
public:
bool UpdateSources();
public bool UpdateSources ();
member this.UpdateSources : unit -> bool
Public Function UpdateSources () As Boolean
Retours
true
si toutes les règles de validation réussissent ; sinon, false
.
Exemples
L’exemple suivant fait partie d’une application qui invite l’utilisateur à entrer plusieurs clients et à affecter un représentant commercial à chaque client. L’application vérifie que le représentant commercial et le client appartiennent à la même région. L’exemple appelle UpdateSources pour valider les liaisons et enregistrer les valeurs dans la source si toutes les règles de validation réussissent.
void saveCustomer_Click(object sender, RoutedEventArgs e)
{
Button btn = sender as Button;
FrameworkElement container = (FrameworkElement) customerList.ContainerFromElement(btn);
// If the user is trying to change an items, when another item has an error,
// display a message and cancel the currently edited item.
if (bindingGroupInError != null && bindingGroupInError != container.BindingGroup)
{
MessageBox.Show("Please correct the data in error before changing another customer");
container.BindingGroup.CancelEdit();
return;
}
if (container.BindingGroup.UpdateSources())
{
bindingGroupInError = null;
MessageBox.Show("Item Saved");
}
else
{
bindingGroupInError = container.BindingGroup;
}
}
Private Sub saveCustomer_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim btn As Button = TryCast(sender, Button)
Dim container As FrameworkElement = CType(customerList.ContainerFromElement(btn), FrameworkElement)
' If the user is trying to change an items, when another item has an error,
' display a message and cancel the currently edited item.
If bindingGroupInError IsNot Nothing AndAlso bindingGroupInError IsNot container.BindingGroup Then
MessageBox.Show("Please correct the data in error before changing another customer")
container.BindingGroup.CancelEdit()
Return
End If
If container.BindingGroup.UpdateSources() Then
bindingGroupInError = Nothing
MessageBox.Show("Item Saved")
Else
bindingGroupInError = container.BindingGroup
End If
End Sub
Remarques
Cette méthode met à jour la source si chacune ValidationRule réussit, mais elle n’entraîne pas la validation des modifications en attente et la fin de la transaction de modification. Autrement dit, si l’objet source implémente IEditableObject. L’appel de cette méthode n’entraîne EndEdit pas l’appel. Utilisez la CommitEdit méthode pour que les sources valident les modifications en attente.