BindingGroup.UpdateSources Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Ejecuta el convertidor en el enlace y los objetos ValidationRule que tienen la propiedad ValidationStep establecida en RawProposedValue, ConvertedProposedValue o UpdatedValue y guarda los valores de los destinos en los objetos de origen si todas las reglas de validación se ejecutan correctamente.
public:
bool UpdateSources();
public bool UpdateSources ();
member this.UpdateSources : unit -> bool
Public Function UpdateSources () As Boolean
Devoluciones
Es true
si todas las reglas de validación se ejecutan correctamente; en caso contrario, es false
.
Ejemplos
El ejemplo siguiente forma parte de una aplicación que solicita al usuario que escriba varios clientes y asigne un representante de ventas a cada cliente. La aplicación comprueba que el representante de ventas y el cliente pertenecen a la misma región. En el ejemplo se llama UpdateSources a para validar los enlaces y guardar los valores en el origen si todas las reglas de validación se realizan correctamente.
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
Comentarios
Este método actualiza el origen si cada ValidationRule se realiza correctamente, pero no hace que los orígenes confirmen los cambios pendientes y finalicen la transacción de edición. Es decir, si el objeto de origen implementa IEditableObject. Llamar a este método no hace EndEdit que se llame a . Use el CommitEdit método para que los orígenes confirmen los cambios pendientes.