BindingSource.AllowNew Właściwość

Definicja

Pobiera lub ustawia wartość wskazującą, czy AddNew() Metoda może być używana do dodawania elementów do listy.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

Wartość właściwości

Boolean

true Jeśli AddNew() można użyć, aby dodać elementy do listy; w przeciwnym razie false .true if AddNew() can be used to add items to the list; otherwise, false.

Wyjątki

Ta właściwość jest ustawiona na true , gdy podstawowa lista reprezentowana przez List Właściwość ma ustalony rozmiar lub jest tylko do odczytu.This property is set to true when the underlying list represented by the List property has a fixed size or is read-only.

Właściwość jest ustawiona na true , a AddingNew zdarzenie nie jest obsługiwane, jeśli typ listy podstawowej nie ma konstruktora bez parametrów.The property is set to true and the AddingNew event is not handled when the underlying list type does not have a parameterless constructor.

Przykłady

Poniższy przykład kodu demonstruje użycie AllowNew właściwości BindingSource składnika, aby zezwolić użytkownikowi na dodawanie nowych elementów do BindingSource podstawowej listy składników.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. Ustawienie tej właściwości true powoduje, że DataGridView formant powiązany będzie wyświetlał jego wiersz dla nowych rekordów.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

Uwagi

Wartość domyślna AllowNew właściwości zależy od bazowego typu źródła danych.The default value for the AllowNew property depends on the underlying data source type. Jeśli podstawowa lista implementuje IBindingList interfejs, ta właściwość zostanie delegowana do podstawowej listy.If the underlying list implements the IBindingList interface, this property will delegate to the underlying list. W przeciwnym razie ta właściwość zwróci wartość, false Jeśli podstawowa lista ma jedną z następujących cech:Otherwise, this property will return false if the underlying list has any of the following characteristics:

  • Ma stały rozmiar, określony przez IList.IsFixedSize Właściwość.It has a fixed size, as determined by the IList.IsFixedSize property.

  • Jest on tylko do odczytu określony przez IList.IsReadOnly Właściwość.It is read-only, as determined by the IList.IsReadOnly property.

  • Typ elementu nie ma konstruktora bez parametrów.The item's type does not have a parameterless constructor.

Uwaga

Po ustawieniu wartości tej właściwości metoda pobierająca nie będzie już odwoływać wywołania do podstawowej listy.Once the value of this property is set, the getter no longer refers the call to the underlying list. Zamiast tego po prostu zwraca wartość, która była poprzednio ustawiona do momentu ResetAllowNew wywołania metody.Instead, it simply returns the value that was previously set until the ResetAllowNew method is called.

Ustawienie tej właściwości wywołuje ListChanged zdarzenie z ListChangedEventArgs.ListChangedType ustawioną na ListChangedType.Reset .Setting this property raises the ListChanged event with ListChangedEventArgs.ListChangedType set to ListChangedType.Reset.

Jeśli ustawisz AllowNew Właściwość na true , a bazowy typ listy nie ma konstruktora bez parametrów, musisz obsłużyć AddingNew zdarzenie i utworzyć odpowiedni typ.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.

Dotyczy

Zobacz też