BindingGroup.UpdateSources Método

Definição

Executa o conversor na associação e nos ValidationRule objetos que têm a ValidationStep propriedade definida como RawProposedValue, ConvertedProposedValueou UpdatedValue salva os valores dos destinos nos objetos de origem se todas as regras de validação forem bem-sucedidas.

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

Retornos

true se todas as regras de validação forem bem-sucedidas; caso contrário, false.

Exemplos

O exemplo a seguir faz parte de um aplicativo que solicita que o usuário insira vários clientes e atribua um representante de vendas a cada cliente. O aplicativo verifica se o representante de vendas e o cliente pertencem à mesma região. O exemplo chama UpdateSources para validar as associações e salvar os valores na origem se todas as regras de validação forem bem-sucedidas.

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

Comentários

Esse método atualiza a origem se cada ValidationRule um tiver êxito, mas não faz com que as fontes confirmem as alterações pendentes e encerrem a transação de edição. Ou seja, se o objeto de origem implementar IEditableObject. Chamar esse método não faz com que EndEdit ele seja chamado. Use o CommitEdit método para que as fontes confirmem as alterações pendentes.

Aplica-se a