BindingGroup.UpdateSources Método

Definição

Executa o conversor na ligação e nos ValidationRule objetos que têm ValidationStep a propriedade definida para RawProposedValue, ConvertedProposedValue, ou UpdatedValue e guarda os valores dos alvos nos objetos de origem se todas as regras de validação tiverem sucesso.

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

Devoluções

true se todas as regras de validação tiverem sucesso; caso contrário, false.

Exemplos

O exemplo seguinte faz parte de uma aplicação que pede ao utilizador para introduzir vários clientes e atribuir um representante de vendas a cada cliente. A aplicação verifica se o representante de vendas e o cliente pertencem à mesma região. O exemplo chama UpdateSources para validar as ligações e guardar os valores na fonte 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

Observações

Este método atualiza o código-fonte se houver ValidationRule sucesso, mas não faz com que as fontes comprometam as alterações pendentes e terminem a transação de edição. Isto é, se o objeto fonte implementar IEditableObject. Chamar este método não faz com EndEdit que seja chamado. Use o CommitEdit método para que as fontes confirmem as alterações pendentes.

Aplica-se a