BindingGroup.UpdateSources Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Futtatja a konvertert a kötésen és a ValidationRule tulajdonságot tartalmazó ValidationStepobjektumokonRawProposedValue, ConvertedProposedValuevagy UpdatedValue menti a célértékeket a forrásobjektumokra, ha az összes érvényesítési szabály sikeres.
public:
bool UpdateSources();
public bool UpdateSources();
member this.UpdateSources : unit -> bool
Public Function UpdateSources () As Boolean
Válaszok
trueha az összes érvényesítési szabály sikeres; egyéb esetben. false
Példák
Az alábbi példa egy alkalmazás része, amely arra kéri a felhasználót, hogy adjon meg több ügyfelet, és rendeljen egy értékesítési képviselőt minden ügyfélhez. Az alkalmazás ellenőrzi, hogy az értékesítési képviselő és az ügyfél ugyanahhoz a régióhoz tartoznak-e. A példa meghívja UpdateSources a kötések érvényesítését és az értékek forrásba mentését, ha az összes érvényesítési szabály sikeres.
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
Megjegyzések
Ez a módszer frissíti a forrást, ha minden ValidationRule sikeres, de nem eredményezi, hogy a források véglegesítik a függőben lévő módosításokat, és befejezik a szerkesztési tranzakciót. Ez azt jelzi, hogy a forrásobjektum megvalósítja-e a elemet IEditableObject. A metódus meghívása nem okoz EndEdit meghívást. CommitEdit A metódus használatával a források véglegesítik a függőben lévő módosításokat.