BindingGroup.UpdateSources Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Führt den Konverter für die Bindung und die ValidationRule Objekte aus, auf die die ValidationStep Eigenschaft festgelegt ist RawProposedValue, ConvertedProposedValueoder UpdatedValue speichert die Werte der Ziele in den Quellobjekten, wenn alle Überprüfungsregeln erfolgreich sind.
public:
bool UpdateSources();
public bool UpdateSources();
member this.UpdateSources : unit -> bool
Public Function UpdateSources () As Boolean
Gibt zurück
truewenn alle Gültigkeitsprüfungsregeln erfolgreich sind; 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 derselben Region angehören. Das Beispiel ruft UpdateSources auf, 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 erfolgreich sind, führt aber nicht dazu, 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 sie aufgerufen wird. Verwenden Sie die CommitEdit Methode, damit die Quellen die ausstehenden Änderungen übernehmen.