BindingSource.AllowNew Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví hodnotu označující, zda lze metodu AddNew() použít k přidání položek do seznamu.
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
Hodnota vlastnosti
true
if AddNew() lze použít k přidání položek do seznamu, false
jinak .
Výjimky
Tato vlastnost je nastavena na true
hodnotu , pokud má podkladový seznam reprezentovaný List vlastností pevnou velikost nebo je jen pro čtení.
Vlastnost je nastavena na true
a AddingNew událost není zpracována, pokud podkladový typ seznamu nemá konstruktor bez parametrů.
Příklady
Následující příklad kódu ukazuje použití AllowNew vlastnosti BindingSource komponenty povolit uživateli přidat nové položky do BindingSource podkladového seznamu komponenty. Nastavení této vlastnosti na způsobí true
, že vázaný DataGridView ovládací prvek zobrazí svůj řádek pro nové záznamy.
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
Poznámky
Výchozí hodnota AllowNew vlastnosti závisí na typu podkladového zdroje dat. Pokud podkladový seznam implementuje IBindingList rozhraní, bude tato vlastnost delegovat na podkladový seznam. V opačném případě se tato vlastnost vrátí false
, pokud má podkladový seznam některou z následujících charakteristik:
Má pevnou velikost určenou IList.IsFixedSize vlastností .
Je jen pro čtení podle vlastnosti IList.IsReadOnly .
Typ položky nemá konstruktor bez parametrů.
Poznámka
Jakmile je hodnota této vlastnosti nastavena, getter již nebude odkazovat na volání podkladového seznamu. Místo toho jednoduše vrátí hodnotu, která byla dříve nastavena, dokud ResetAllowNew není volána metoda .
Nastavení této vlastnosti vyvolá ListChanged událost s nastavenou ListChangedEventArgs.ListChangedType na ListChangedType.Reset.
Pokud nastavíte AllowNew vlastnost na true
a podkladový typ seznamu nemá konstruktor bez parametrů, musíte zpracovat AddingNew událost a vytvořit příslušný typ.