BindingSource.AllowNew Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece un valor que indica si el método AddNew() se puede utilizar para agregar elementos a la lista.
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
Valor de propiedad
true
si se puede utilizar AddNew() para agregar elementos a la lista; en caso contrario, devuelve false
.
Excepciones
Esta propiedad se establece en true
cuando la lista subyacente representada por la propiedad List tiene un tamaño fijo o es de sólo lectura.
La propiedad se establece en true
y no se controla el evento AddingNew cuando el tipo de lista subyacente no tiene ningún constructor sin parámetros.
Ejemplos
En el ejemplo de código siguiente se muestra el uso de la AllowNew propiedad del BindingSource componente para permitir al usuario agregar nuevos elementos a la BindingSource lista subyacente del componente. Establecer esta propiedad en true
hace que el control enlazado DataGridView muestre su fila para los nuevos registros.
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
Comentarios
El valor predeterminado de la AllowNew propiedad depende del tipo de origen de datos subyacente. Si la lista subyacente implementa la IBindingList interfaz , esta propiedad delegará en la lista subyacente. De lo contrario, esta propiedad devolverá false
si la lista subyacente tiene alguna de las siguientes características:
Tiene un tamaño fijo, según lo determinado por la IList.IsFixedSize propiedad .
Es de solo lectura, según lo determinado por la IList.IsReadOnly propiedad .
El tipo del elemento no tiene un constructor sin parámetros.
Nota
Una vez establecido el valor de esta propiedad, el captador ya no hace referencia a la llamada a la lista subyacente. En su lugar, simplemente devuelve el valor que se estableció anteriormente hasta que se llama al ResetAllowNew método .
Al establecer esta propiedad, se genera el ListChanged evento con ListChangedEventArgs.ListChangedType establecido en ListChangedType.Reset.
Si establece la AllowNew propiedad true
en y el tipo de lista subyacente no tiene un constructor sin parámetros, debe controlar el AddingNew evento y crear el tipo adecuado.