Freigeben über


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.

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

Gibt zurück

Boolean

true, wenn alle Validierungsregeln erfolgreich ausgeführt wurden, andernfalls false.

Beispiele

Das folgende Beispiel ist Teil einer Anwendung, die den Benutzer auffordert, mehrere Kunden einzugeben und jedem Kunden einen Vertriebsmitarbeiter zuzuweisen. Die Anwendung überprüft, ob der Vertriebsmitarbeiter und der Kunde zu derselben Region gehören. Im Beispiel wird aufgerufen UpdateSources , um die Bindungen zu überprüfen und die Werte in der Quelle zu speichern, wenn alle Überprüfungsregeln erfolgreich sind.

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 alle ValidationRule erfolgreichen Schritte ausgeführt werden, verursachen jedoch nicht, dass die Quellen die ausstehenden Änderungen übernehmen und die Bearbeitungstransaktion beenden. Das heißt, wenn das Quellobjekt implementiert IEditableObjectwird. Das Aufrufen dieser Methode führt EndEdit nicht dazu, dass aufgerufen wird. Verwenden Sie die CommitEdit Methode, um die ausstehenden Änderungen zu übernehmen.

Gilt für