Sdílet prostřednictvím


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

 

Publikováno: duben 2016

Při úpravě hodnot v ovládacích prvcích vázaných na data, musí uživatelé přejít mimo aktuální záznam potvrzení aktualizované hodnoty podkladové zdroje dat, které je ovládací prvek vázán. Při přetažení položky z Okno zdroje dat do formuláře, první položku, která je vyřadit generuje kód do uložení události kliknutí na tlačítko BindingNavigator. Tento kód volá EndEdit metodu BindingSource. Proto volání EndEdit Metoda je vygenerována pouze pro první BindingSource který je přidán do formuláře.

EndEdit Volání potvrzení změny, které jsou v procesu v všechny ovládací prvky vázané na data, které jsou aktuálně upravována. Proto pokud ovládací prvek vázaný na data má stále fokus a klikněte na tlačítko Uložit tlačítko všechny čekající změny v tom smyslu, že jsou před skutečné uložit potvrzené ovládací prvek ( TableAdapterManager.UpdateAll Metoda).

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

Poznámka

Přidá Návrhář 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. Alternativně můžete přidat EndEditOnAllBindingSources Metoda do formuláře a před provedením k uložení ji volat.

Následující kód používá LINQ (Language-Integrated Query) dotaz pro všechny iterace BindingSource součásti a volání EndEdit Metoda pro každou BindingSource ve formuláři.

Volání EndEdit pro všechny součásti BindingSource ve formuláři

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

            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();
                }
            }
    
        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
    
  2. Přidejte následující řádek kódu bezprostředně před volání uložit data formuláře ( TableAdapterManager.UpdateAll() Metoda):

                EndEditOnAllBindingSources();
    
            Me.EndEditOnAllBindingSources()
    

Viz také

Vytvoření vazby ovládacích prvků Windows Forms k datům v sadě Visual Studio
Hierarchická aktualizace