BindingSource.AllowNew Eigenschap

Definitie

Hiermee haalt u een waarde op die aangeeft of de AddNew() methode kan worden gebruikt om items aan de lijst toe te voegen.

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

Waarde van eigenschap

trueals AddNew() kan worden gebruikt om items toe te voegen aan de lijst; anders. false

Uitzonderingen

Deze eigenschap wordt ingesteld op true wanneer de onderliggende lijst die wordt vertegenwoordigd door de List eigenschap een vaste grootte heeft of alleen-lezen is.

De eigenschap is ingesteld true op en de AddingNew gebeurtenis wordt niet verwerkt wanneer het onderliggende lijsttype geen constructor zonder parameter heeft.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de AllowNew eigenschap van het BindingSource onderdeel gebruikt om de gebruiker toe te laten nieuwe items toe te voegen aan de onderliggende lijst van het BindingSource onderdeel. Als u deze eigenschap instelt, true wordt de rij van het afhankelijke DataGridView besturingselement weergegeven voor nieuwe records.

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

Opmerkingen

De standaardwaarde voor de AllowNew eigenschap is afhankelijk van het onderliggende gegevensbrontype. Als de onderliggende lijst de IBindingList interface implementeert, wordt deze eigenschap gedelegeerd aan de onderliggende lijst. Anders wordt deze eigenschap geretourneerd false als de onderliggende lijst een van de volgende kenmerken heeft:

  • Het heeft een vaste grootte, zoals bepaald door de IList.IsFixedSize eigenschap.

  • Het is alleen-lezen, zoals wordt bepaald door de IList.IsReadOnly eigenschap.

  • Het type item heeft geen parameterloze constructor.

Note

Zodra de waarde van deze eigenschap is ingesteld, verwijst de getter niet meer naar de onderliggende lijst. In plaats daarvan wordt alleen de waarde geretourneerd die eerder is ingesteld totdat de ResetAllowNew methode wordt aangeroepen.

Als u deze eigenschap instelt, wordt de ListChanged gebeurtenis gegenereerd waarop ListChangedEventArgs.ListChangedType deze is ingesteld ListChangedType.Reset.

Als u de AllowNew eigenschap true instelt op en het onderliggende lijsttype geen parameterloze constructor heeft, moet u de AddingNew gebeurtenis afhandelen en het juiste type maken.

Van toepassing op

Zie ook