Compartilhar via


BindingGroup.UpdateSources Método

Definição

Executará o conversor na associação e nos objetos ValidationRule que têm a propriedade ValidationStep definida como RawProposedValue, ConvertedProposedValue ou UpdatedValue e salvará os valores dos destinos para os objetos de origem se todas as regras de validação tiverem sido bem-sucedidas.

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

Retornos

Boolean

true se todas as regras de validação tiveram sido 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 tiverem êxito.

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 seja chamado. Use o CommitEdit método para que as fontes confirmem as alterações pendentes.

Aplica-se a