Sdílet prostřednictvím


Postupy: Potvrzení úprav v procesu v ovládacích prvcích vázaných na data před uložením dat

Při úpravě hodnoty ovládací prvky vázané na data, musí uživatelé přejít mimo aktuální záznam potvrdit podkladový zdroj dat, který je ovládací prvek vázán na aktualizovanou hodnotu.Při přetahování položek z Okno zdroje dat první položku, která přetáhnete do formuláře, generuje kód do uložit, klepněte na tlačítko události BindingNavigator.Tento kód volá EndEdit metodu BindingSource.Proto volání EndEdit metoda je vygenerován pouze pro první BindingSource je do formuláře.

EndEdit Volání směrovači veškeré změny, které jsou v procesu ve všech ovládacích prvcích, které jsou aktuálně upravovat vázán na data.Proto má ovládací prvek vázán na data stále fokus a klepněte Uložit tlačítko všechny čekající změny v tomto řízení se zavázaly před skutečným uložit ( TableAdapterManager.UpdateAll metoda).

Můžete nakonfigurovat aplikace automaticky potvrzení změn, i když uživatel pokusí uložit data bez potvrzování změn, jako součást uložit procesu.

[!POZNÁMKA]

Návrhář přidá BindingSource.EndEdit vynechán kód pouze pro první položku do formuláře.Proto je nutné přidat řádek kódu pro volání EndEdit metoda pro každou BindingSource ve formuláři.Můžete ručně přidat řádek kódu pro volání EndEdit metoda pro každou BindingSource.Můžete také přidat EndEditOnAllBindingSources metoda formuláře a před provedením uložení ji volat.

Následující kód používá LINQ (Language-Integrated Query) dotazu iterace všech BindingSource komponenty a volání EndEdit metoda pro každou BindingSource ve formuláři.

Volání EndEdit u všech komponent BindingSource ve formuláři

  1. Přidejte do formuláře, který obsahuje následující kód BindingSource komponent.

    Private Sub EndEditOnAllBindingSources()
        Dim BindingSourcesQuery = From bindingsources In Me.components.Components 
                      Where (TypeOf bindingsources Is Windows.Forms.BindingSource) 
                      Select bindingsources
    
        For Each bindingSource As Windows.Forms.BindingSource In BindingSourcesQuery
            bindingSource.EndEdit()
        Next 
    End Sub
    
    private void EndEditOnAllBindingSources()
    {
        var BindingSourcesQuery =
            from Component bindingSources in this.components.Components
            where bindingSources is BindingSource
            select bindingSources;
    
        foreach (BindingSource bindingSource in BindingSourcesQuery)
        {
            bindingSource.EndEdit();
        }
    }
    
  2. Přidejte následující řádek kódu bezprostředně před volání uložit data formuláře ( TableAdapterManager.UpdateAll() metoda):

    Me.EndEditOnAllBindingSources()
    
    EndEditOnAllBindingSources();
    

Viz také

Referenční dokumentace

BindingSource – přehled komponenty

Koncepty

Přehled hierarchické aktualizace

TableAdapterManager – přehled

TableAdapter – přehled