BindingSource.AllowNew Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob mithilfe der AddNew()-Methode der Liste Elemente hinzugefügt werden können, oder legt diesen fest.Gets or sets a value indicating whether the AddNew() method can be used to add items to the list.

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

Eigenschaftswert

Boolean

true, wenn AddNew() verwendet werden kann, um der Liste Elemente hinzuzufügen, andernfalls false.true if AddNew() can be used to add items to the list; otherwise, false.

Ausnahmen

Diese Eigenschaft wird auf true festgelegt, wenn die zugrunde liegende, durch die List-Eigenschaft dargestellte Liste eine feste Größe hat oder schreibgeschützt ist.This property is set to true when the underlying list represented by the List property has a fixed size or is read-only.

Die Eigenschaft wird auf true festgelegt, und das AddingNew-Ereignis wird nicht verarbeitet, wenn der zugrunde liegende Listentyp keinen parameterlosen Konstruktor besitzt.The property is set to true and the AddingNew event is not handled when the underlying list type does not have a parameterless constructor.

Beispiele

Das folgende Codebeispiel veranschaulicht die Verwendung der AllowNew-Eigenschaft der BindingSource-Komponente, um dem Benutzer zu gestatten, der zugrunde liegenden Liste der BindingSource Komponente neue Elemente hinzuzufügen.The following code example demonstrates using the AllowNew property of the BindingSource component to permit the user to add new items to the BindingSource component's underlying list. Wenn diese Eigenschaft auf true festgelegt wird, zeigt das gebundene DataGridView Steuerelement seine Zeile für neue Datensätze an.Setting this property to true causes the bound DataGridView control to display its row for new 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

Hinweise

Der Standardwert für die AllowNew-Eigenschaft hängt vom zugrunde liegenden Daten Quellentyp ab.The default value for the AllowNew property depends on the underlying data source type. Wenn die zugrunde liegende Liste die IBindingList-Schnittstelle implementiert, wird diese Eigenschaft an die zugrunde liegende Liste delegiert.If the underlying list implements the IBindingList interface, this property will delegate to the underlying list. Andernfalls gibt diese Eigenschaft false zurück, wenn die zugrunde liegende Liste eine der folgenden Eigenschaften aufweist:Otherwise, this property will return false if the underlying list has any of the following characteristics:

  • Sie verfügt über eine festgelegte Größe, die durch die IList.IsFixedSize-Eigenschaft festgelegt ist.It has a fixed size, as determined by the IList.IsFixedSize property.

  • Sie ist schreibgeschützt, wie durch die IList.IsReadOnly-Eigenschaft festgelegt.It is read-only, as determined by the IList.IsReadOnly property.

  • Der Typ des Elements weist keinen Parameter losen Konstruktor auf.The item's type does not have a parameterless constructor.

Hinweis

Nachdem der Wert dieser Eigenschaft festgelegt wurde, verweist der Getter nicht mehr auf die zugrunde liegende Liste.Once the value of this property is set, the getter no longer refers the call to the underlying list. Stattdessen wird einfach der Wert zurückgegeben, der zuvor festgelegt wurde, bis die ResetAllowNew-Methode aufgerufen wird.Instead, it simply returns the value that was previously set until the ResetAllowNew method is called.

Durch Festlegen dieser Eigenschaft wird das ListChanged-Ereignis ausgelöst, wobei ListChangedEventArgs.ListChangedType auf ListChangedType.Resetfestgelegt ist.Setting this property raises the ListChanged event with ListChangedEventArgs.ListChangedType set to ListChangedType.Reset.

Wenn Sie die AllowNew-Eigenschaft auf true festlegen und der zugrunde liegende Listentyp keinen Parameter losen Konstruktor hat, müssen Sie das AddingNew-Ereignis behandeln und den entsprechenden Typ erstellen.If you set the AllowNew property to true and the underlying list type does not have a parameterless constructor, you must handle the AddingNew event and create the appropriate type.

Gilt für:

Siehe auch