BindingGroup.UpdateSources Methode

Definition

Führt den Konverter für die Bindung und die ValidationRule-Objekte aus, deren ValidationStep-Eigenschaft auf RawProposedValue, ConvertedProposedValue oder UpdatedValue festgelegt ist, und speichert die Werte der Ziele in den Quellobjekten, sofern alle Validierungsregeln erfolgreich ausgeführt wurden.Runs the converter on the binding and the ValidationRule objects that have the ValidationStep property set to RawProposedValue, ConvertedProposedValue, or UpdatedValue and saves the values of the targets to the source objects if all the validation rules succeed.

public:
 bool UpdateSources();
public bool UpdateSources ();
member this.UpdateSources : unit -> bool
Public Function UpdateSources () As Boolean

Gibt zurück

true, wenn alle Validierungsregeln erfolgreich ausgeführt wurden, andernfalls false.true if all validation rules succeed; otherwise, false.

Beispiele

Das folgende Beispiel ist Teil einer Anwendung, die den Benutzer zur Eingabe mehrerer Kunden auffordert und jedem Kunden einen Vertriebsmitarbeiter zuweist.The following example is part of an application that prompts the user to enter multiple customers and assign a sales representative to each customer. Die Anwendung überprüft, ob der Vertriebsmitarbeiter und der Kunde der gleichen Region angehören.The application checks that the sales representative and the customer belong to the same region. Im Beispiel wird UpdateSources aufgerufen, um die Bindungen zu überprüfen und die Werte in der Quelle zu speichern, wenn alle Validierungsregeln erfolgreich ausgeführt wurden.The example calls UpdateSources to validate the bindings and save the values to the source if all the validation rules succeed.

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

Hinweise

Diese Methode aktualisiert die Quelle, wenn ValidationRule jeder erfolgreich ist, führt jedoch nicht dazu, dass die Quellen einen Commit für die ausstehenden Änderungen durchführen und die Edit Transaction beenden.This method updates the source if every ValidationRule succeeds, but it does not cause the sources to commit the pending changes and end the edit transaction. Das heißt, wenn das Quell Objekt implementiert IEditableObject.That is, if the source object implements IEditableObject. Das Aufrufen dieser Methode führt nicht EndEdit dazu, dass aufgerufen wird.Calling this method does not cause EndEdit to be called. Verwenden Sie CommitEdit die-Methode, damit die Quellen einen Commit für die ausstehenden Änderungen durchführen.Use the CommitEdit method to have the sources commit the pending changes.

Gilt für: