Sdílet prostřednictvím


BindingList<T>.AddNew Metoda

Definice

Přidá do kolekce novou položku.

public:
 T AddNew();
public T AddNew ();
member this.AddNew : unit -> 'T
Public Function AddNew () As T

Návraty

T

Položka přidaná do seznamu.

Výjimky

Vlastnost AllowNew je nastavena na hodnotu false.

-nebo-

Pro aktuální typ položky nebyl nalezen veřejný konstruktor bez parametrů.

Příklady

Následující příklad kódu ukazuje, jak použít metodu AddNew . BindingList<T>. Úplný příklad najdete v tématu s přehledem BindingList<T> třídy.

// Add the new part unless the part number contains
// spaces. In that case cancel the add.
private void button1_Click(object sender, EventArgs e)
{
    Part newPart = listOfParts.AddNew();

    if (newPart.PartName.Contains(" "))
    {
        MessageBox.Show("Part names cannot contain spaces.");
        listOfParts.CancelNew(listOfParts.IndexOf(newPart));
    }
    else
    {
        textBox2.Text = randomNumber.Next(9999).ToString();
        textBox1.Text = "Enter part name";
    }
}
' Add the new part unless the part number contains
' spaces. In that case cancel the add.
Private Sub button1_Click(ByVal sender As Object, _
    ByVal e As EventArgs) Handles button1.Click

    Dim newPart As Part = listOfParts.AddNew()

    If newPart.PartName.Contains(" ") Then
        MessageBox.Show("Part names cannot contain spaces.")
        listOfParts.CancelNew(listOfParts.IndexOf(newPart))
    Else
        textBox2.Text = randomNumber.Next(9999).ToString()
        textBox1.Text = "Enter part name"
    End If

End Sub

Poznámky

Metoda AddNew přidá novou položku do kolekce reprezentované Items vlastností . K přidání nové položky se používá následující logika:

  1. Událost AddingNew se automaticky vyvolá.

    Tato událost se dá programově zpracovat a vytvořit novou vlastní položku. Toho se dosahuje v obslužné rutině události nastavením NewObject vlastnosti parametru AddingNewEventArgs na novou položku.

    V opačném případě se nová položka automaticky vytvoří prostřednictvím veřejného konstruktoru bez parametrů.

  2. Pozice nové položky je sledována, ale není přidána do seznamu, dokud není splněna jedna z následujících podmínek:

    • Položka je explicitně potvrzena voláním .EndNew

    • Položka je implicitně potvrzena jinou operací, která změnila obsah seznamu, například vložením nebo odebráním položky.

Naproti tomu volání CancelNew metody před potvrzením položky způsobí, že nová položka bude zahozena.

Tato metoda vyvolá ListChanged událost při potvrzení nové položky.

Platí pro

Viz také