BindingSource.AllowNew Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore che indica se il metodo AddNew() può essere utilizzato per aggiungere elementi all'elenco.
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
Valore della proprietà
true
se il metodo AddNew() può essere utilizzato per aggiungere elementi all'elenco; in caso contrario, false
.
Eccezioni
Questa proprietà è impostata su true
quando l'elenco sottostante rappresentato dalla proprietà List ha una dimensione fissa oppure è in sola lettura.
Quando il tipo di elenco sottostante non ha un costruttore senza parametri, la proprietà viene impostata su true
e l'evento AddingNew non viene gestito.
Esempio
Nell'esempio di codice seguente viene illustrata l'uso AllowNew della proprietà del BindingSource componente per consentire all'utente di aggiungere nuovi elementi all'elenco BindingSource sottostante del componente. Impostando questa proprietà per true
causare la visualizzazione della riga del controllo associato DataGridView per i nuovi record.
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
Commenti
Il valore predefinito per la AllowNew proprietà dipende dal tipo di origine dati sottostante. Se l'elenco sottostante implementa l'interfaccia, questa proprietà delega all'elenco IBindingList sottostante. In caso contrario, questa proprietà restituirà false
se l'elenco sottostante ha una delle caratteristiche seguenti:
Ha una dimensione fissa, come determinato dalla IList.IsFixedSize proprietà.
È di sola lettura, come determinato dalla IList.IsReadOnly proprietà.
Il tipo dell'elemento non ha un costruttore senza parametri.
Nota
Dopo aver impostato il valore di questa proprietà, il getter non fa più riferimento alla chiamata all'elenco sottostante. Restituisce invece semplicemente il valore precedentemente impostato finché non viene chiamato il ResetAllowNew metodo.
L'impostazione di questa proprietà genera l'evento ListChanged con ListChangedEventArgs.ListChangedType impostato su ListChangedType.Reset.
Se si imposta la AllowNew proprietà su true
e il tipo di elenco sottostante non dispone di un costruttore senza parametri, è necessario gestire l'evento AddingNew e creare il tipo appropriato.