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 urč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
truepokud AddNew() lze použít k přidání položek do seznamu, jinak . false
Výjimky
Tato vlastnost je nastavena, true pokud podkladový seznam reprezentovaný List vlastností má pevnou velikost nebo je jen pro čtení.
Vlastnost je nastavena true a AddingNew událost není zpracována, pokud základní 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ím této vlastnosti způsobí, že true vázaný DataGridView ovládací prvek zobrazí jeho řá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 vlastnosti AllowNew závisí na podkladovém typu zdroje dat. Pokud podkladový seznam implementuje IBindingList rozhraní, tato vlastnost bude delegovat na podkladový seznam. V opačném případě tato vlastnost vrátí false , pokud podkladový seznam má některou z následujících charakteristik:
Má pevnou velikost určenou IList.IsFixedSize vlastností.
Je určen jen pro čtení, jak určuje IList.IsReadOnly vlastnost.
Typ položky nemá konstruktor bez parametrů.
Poznámka:
Jakmile je nastavena hodnota této vlastnosti, 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 ListChangedEventArgs.ListChangedType nastavenou na ListChangedType.Reset.
Pokud vlastnost true nastavíte AllowNew a základní typ seznamu nemá konstruktor bez parametrů, musíte zpracovat AddingNew událost a vytvořit odpovídající typ.