Sdílet prostřednictvím


BindingSource.AllowNew Vlastnost

Definice

Získá nebo nastaví hodnotu určující, zda lze metodu AddNew() použít k přidání položek do seznamu.

public:
 virtual property bool AllowNew { bool get(); void set(bool value); };
public virtual bool AllowNew { get; set; }
member this.AllowNew : bool with get, set
Public Overridable Property AllowNew As Boolean

Hodnota vlastnosti

truepokud AddNew() lze použít k přidání položek do seznamu, jinak . false

Výjimky

Tato vlastnost je nastavena, true pokud podkladový seznam reprezentovaný List vlastností má pevnou velikost nebo je jen pro čtení.

Vlastnost je nastavena true a AddingNew událost není zpracována, pokud základní typ seznamu nemá konstruktor bez parametrů.

Příklady

Následující příklad kódu ukazuje použití AllowNew vlastnosti BindingSource komponenty povolit uživateli přidat nové položky do BindingSource podkladového seznamu komponenty. Nastavením této vlastnosti způsobí, že true vázaný DataGridView ovládací prvek zobrazí jeho řádek pro nové záznamy.

Form1()
{
   // Set up the form.
   this->Size = System::Drawing::Size( 800, 800 );
   this->Load += gcnew EventHandler( this, &Form1::Form1_Load );
   
   // Set up the RadioButton controls.
   this->allRadioBtn->Text = L"All";
   this->allRadioBtn->Checked = true;
   this->allRadioBtn->CheckedChanged += gcnew EventHandler(
      this, &Form1::allRadioBtn_CheckedChanged );
   this->allRadioBtn->Dock = DockStyle::Top;
   this->currentRadioBtn->Text = L"Current";
   this->currentRadioBtn->CheckedChanged += gcnew EventHandler(
      this, &Form1::currentRadioBtn_CheckedChanged );
   this->currentRadioBtn->Dock = DockStyle::Top;
   this->noneRadioBtn->Text = L"None";
   this->noneRadioBtn->CheckedChanged += gcnew EventHandler(
      this, &Form1::noneRadioBtn_CheckedChanged );
   this->noneRadioBtn->Dock = DockStyle::Top;
   this->buttonPanel->Controls->Add( this->allRadioBtn );
   this->buttonPanel->Controls->Add( this->currentRadioBtn );
   this->buttonPanel->Controls->Add( this->noneRadioBtn );
   this->buttonPanel->Dock = DockStyle::Bottom;
   this->Controls->Add( this->buttonPanel );
   
   // Set up the DataGridView control.
   this->customersDataGridView->AllowUserToAddRows = true;
   this->customersDataGridView->Dock = DockStyle::Fill;
   this->Controls->Add( customersDataGridView );
   
   // Add the StatusBar control to the form.
   this->Controls->Add( status );
   
   // Allow the user to add new items.
   this->customersBindingSource->AllowNew = true;
   
   // Attach an event handler for the AddingNew event.
   this->customersBindingSource->AddingNew +=
      gcnew AddingNewEventHandler(
         this, &Form1::customersBindingSource_AddingNew );
   
   // Attach an eventhandler for the ListChanged event.
   this->customersBindingSource->ListChanged +=
      gcnew ListChangedEventHandler(
         this, &Form1::customersBindingSource_ListChanged );
   
   // Set the initial value of the ItemChangedEventMode property
   // to report all ListChanged events.
   this->customersBindingSource->ItemChangedEventMode = 
     ItemChangedEventMode::All;
   
   // Attach the BindingSource to the DataGridView.
   this->customersDataGridView->DataSource =
      this->customersBindingSource;
}
public Form1()
{
    // Set up the form.
    this.Size = new Size(800, 800);
    this.Load += new EventHandler(Form1_Load);

    // Set up the DataGridView control.
    this.customersDataGridView.AllowUserToAddRows = true;
    this.customersDataGridView.Dock = DockStyle.Fill;
    this.Controls.Add(customersDataGridView);

    // Add the StatusBar control to the form.
    this.Controls.Add(status);

    // Allow the user to add new items.
    this.customersBindingSource.AllowNew = true;

    // Attach an event handler for the AddingNew event.
    this.customersBindingSource.AddingNew +=
        new AddingNewEventHandler(customersBindingSource_AddingNew);

    // Attach an eventhandler for the ListChanged event.
    this.customersBindingSource.ListChanged +=
        new ListChangedEventHandler(customersBindingSource_ListChanged);

    // Attach the BindingSource to the DataGridView.
    this.customersDataGridView.DataSource =
        this.customersBindingSource;
}
Public Sub New() 
    ' Set up the form.
    Me.Size = New Size(800, 800)
    AddHandler Me.Load, AddressOf Form1_Load
    
    ' Set up the DataGridView control.
    Me.customersDataGridView.AllowUserToAddRows = True
    Me.customersDataGridView.Dock = DockStyle.Fill
    Me.Controls.Add(customersDataGridView)
    
    ' Add the StatusBar control to the form.
    Me.Controls.Add(status)
    
    ' Allow the user to add new items.
    Me.customersBindingSource.AllowNew = True
    
    ' Attach the BindingSource to the DataGridView.
    Me.customersDataGridView.DataSource = Me.customersBindingSource

End Sub

Poznámky

Výchozí hodnota vlastnosti AllowNew závisí na podkladovém typu zdroje dat. Pokud podkladový seznam implementuje IBindingList rozhraní, tato vlastnost bude delegovat na podkladový seznam. V opačném případě tato vlastnost vrátí false , pokud podkladový seznam má některou z následujících charakteristik:

  • Má pevnou velikost určenou IList.IsFixedSize vlastností.

  • Je určen jen pro čtení, jak určuje IList.IsReadOnly vlastnost.

  • Typ položky nemá konstruktor bez parametrů.

Poznámka:

Jakmile je nastavena hodnota této vlastnosti, getter již nebude odkazovat na volání podkladového seznamu. Místo toho jednoduše vrátí hodnotu, která byla dříve nastavena, dokud ResetAllowNew není volána metoda.

Nastavení této vlastnosti vyvolá ListChanged událost s ListChangedEventArgs.ListChangedType nastavenou na ListChangedType.Reset.

Pokud vlastnost true nastavíte AllowNew a základní typ seznamu nemá konstruktor bez parametrů, musíte zpracovat AddingNew událost a vytvořit odpovídající typ.

Platí pro

Viz také