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.

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

true, wenn AddNew() verwendet werden kann, um der Liste Elemente hinzuzufügen, andernfalls 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.

Die Eigenschaft wird auf true festgelegt, und das AddingNew-Ereignis wird nicht verarbeitet, wenn der zugrunde liegende Listentyp keinen parameterlosen Konstruktor besitzt.

Beispiele

Das folgende Codebeispiel veranschaulicht die Verwendung der AllowNew -Eigenschaft der BindingSource Komponente, um dem Benutzer das Hinzufügen neuer Elemente zur zugrunde liegenden Liste der BindingSource Komponente zu ermöglichen. Wenn Sie diese Eigenschaft auf festlegen, true zeigt das gebundene DataGridView Steuerelement seine Zeile für neue Datensätze an.

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 Datenquellentyp ab. Wenn die zugrunde liegende Liste die IBindingList Schnittstelle implementiert, delegiert diese Eigenschaft an die zugrunde liegende Liste. Andernfalls wird diese Eigenschaft zurückgegeben false , wenn die zugrunde liegende Liste eines der folgenden Merkmale aufweist:

  • Es hat eine feste Größe, die von der IList.IsFixedSize -Eigenschaft bestimmt wird.

  • Es ist schreibgeschützt, wie von der IList.IsReadOnly -Eigenschaft bestimmt.

  • Der Typ des Elements verfügt nicht über einen parameterlosen Konstruktor.

Hinweis

Sobald der Wert dieser Eigenschaft festgelegt wurde, verweist der Getter nicht mehr auf den Aufruf an die zugrunde liegende Liste. Stattdessen wird einfach der Wert zurückgegeben, der zuvor festgelegt wurde, bis die ResetAllowNew Methode aufgerufen wird.

Durch Festlegen dieser Eigenschaft wird das ListChanged Ereignis mit ListChangedEventArgs.ListChangedType festgelegt auf ListChangedType.Resetausgelöst.

Wenn Sie die AllowNew -Eigenschaft auf true festlegen und der zugrunde liegende Listentyp keinen parameterlosen Konstruktor aufweist, müssen Sie das AddingNew Ereignis behandeln und den entsprechenden Typ erstellen.

Gilt für:

Weitere Informationen