Sdílet prostřednictvím


Jak na to: Práce s daty ve Windows Forms

V aplikaci pro Windows je nejjednodušší způsob, jak procházet záznamy ve zdroji dat, navázat komponentu BindingSource na zdroj dat a poté připojit ovládací prvky na BindingSource. Pak můžete na BindingSource použít integrovanou navigační metodu, jako je MoveNext, MoveLast, MovePrevious a MoveFirst. Pomocí těchto metod upravíte Position a Current vlastnosti BindingSource odpovídajícím způsobem. Můžete také najít položku a nastavit ji jako aktuální položku nastavením Position vlastnost.

Zvýšení pozice ve zdroji dat

  1. Nastavte vlastnost Position u BindingSource pro svázaná data na pozici záznamu, kam se chcete přesunout. Následující příklad ukazuje použití metody MoveNext z BindingSource ke zvýšení vlastnosti Position při kliknutí na nextButton. BindingSource je přidružená k tabulce Customers datové sady Northwind.

    Poznámka

    Nastavení vlastnosti Position na hodnotu nad rámec prvního nebo posledního záznamu nemá za následek chybu, protože rozhraní .NET Framework neumožňuje nastavit pozici na hodnotu mimo hranice seznamu. Pokud je ve vaší aplikaci důležité vědět, jestli jste přešli za první nebo poslední záznam, zahrňte logiku, která otestuje, jestli překročíte počet datových prvků.

    private void nextButton_Click(object sender, System.EventArgs e)
    {
        this.customersBindingSource.MoveNext();
    }
    
    Private Sub nextButton_Click(ByVal sender As Object, _
        ByVal e As System.EventArgs) Handles nextButton.Click
        Me.customersBindingSource.MoveNext()
    End Sub
    

Zkontrolovat, zda jste dosáhli konce nebo začátku.

  1. Vytvořte obslužnou rutinu pro událost PositionChanged. V obslužné rutině můžete otestovat, zda navrhovaná hodnota pozice překročila skutečný počet datových prvků.

    Následující příklad ukazuje, jak můžete otestovat, zda jste dosáhli posledního datového prvku. V příkladu, pokud jste na posledním prvku, je ve formuláři tlačítko Další deaktivováno.

    Poznámka

    Mějte na paměti, že pokud byste měli změnit seznam, ve kterém procházíte kódem, měli byste znovu povolit tlačítko Další, aby uživatelé mohli procházet celou délku nového seznamu. Kromě toho mějte na paměti, že výše uvedená událost PositionChanged pro konkrétní BindingSource, se kterými pracujete, musí být přidružena k metodě zpracování události. Následuje příklad metody pro zpracování PositionChanged události:

    void customersBindingSource_PositionChanged(object sender, EventArgs e)
    {
        if (customersBindingSource.Position == customersBindingSource.Count - 1)
            nextButton.Enabled = false;
        else
            nextButton.Enabled = true;
    }
    
    Sub customersBindingSource_PositionChanged(ByVal sender As Object, _
        ByVal e As EventArgs)
    
        If customersBindingSource.Position = _
            customersBindingSource.Count - 1 Then
            nextButton.Enabled = False
        Else
            nextButton.Enabled = True
        End If
    End Sub
    

Vyhledání položky a jeho nastavení jako aktuální položky

  1. Najděte záznam, který chcete nastavit jako aktuální položku. Můžete to provést pomocí Find metody BindingSource, pokud váš zdroj dat implementuje IBindingList. Některé příklady zdrojů dat, které implementují IBindingList, jsou BindingList<T> a DataView.

    void findButton_Click(object sender, EventArgs e)
    {
        int foundIndex = customersBindingSource.Find("CustomerID", "ANTON");
        customersBindingSource.Position = foundIndex;
    }
    
    Sub findButton_Click(ByVal sender As Object, ByVal e As EventArgs) _
        Handles findButton.Click
        Dim foundIndex As Integer = customersBindingSource.Find("CustomerID", _
            "ANTON")
        customersBindingSource.Position = foundIndex
    End Sub
    

Viz také