BindingGroup.UpdateSources Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Uruchamia konwerter w powiązaniu i ValidationRule obiekty, które mają ValidationStep właściwość ustawioną na RawProposedValue, ConvertedProposedValuelub UpdatedValue , i zapisuje wartości obiektów docelowych w obiektach źródłowych, jeśli wszystkie reguły weryfikacji powiedzą się.
public:
bool UpdateSources();
public bool UpdateSources ();
member this.UpdateSources : unit -> bool
Public Function UpdateSources () As Boolean
Zwraca
true
jeśli wszystkie reguły weryfikacji kończą się powodzeniem; w przeciwnym razie , false
.
Przykłady
Poniższy przykład jest częścią aplikacji, która monituje użytkownika o wprowadzenie wielu klientów i przypisze przedstawicielowi ds. sprzedaży do każdego klienta. Aplikacja sprawdza, czy przedstawiciel handlowy i klient należą do tego samego regionu. Przykład wywołuje metodę UpdateSources sprawdzania poprawności powiązań i zapisz wartości w źródle, jeśli wszystkie reguły weryfikacji powiedzą się.
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
Uwagi
Ta metoda aktualizuje źródło, jeśli każde ValidationRule powiedzie się, ale nie powoduje zatwierdzenia oczekujących zmian przez źródła i zakończenia transakcji edycji. Oznacza to, że jeśli obiekt źródłowy implementuje IEditableObjectelement . Wywołanie tej metody nie powoduje EndEdit wywołania. CommitEdit Użyj metody , aby źródła zatwierdzały oczekujące zmiany.