BindingSource.AllowNew BindingSource.AllowNew BindingSource.AllowNew BindingSource.AllowNew Property

定義

AddNew() メソッドを使用してリストに項目を追加できるかどうかを示す値を取得または設定します。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

プロパティ値

AddNew() を使用してリストに項目を追加できる場合は true。それ以外の場合は falsetrue if AddNew() can be used to add items to the list; otherwise, false.

例外

List プロパティで表される基底のリストが固定サイズまたは読み取り専用であるにもかかわらず、このプロパティが true に設定されています。This property is set to true when the underlying list represented by the List property has a fixed size or is read-only.

基になるリストの型にパラメーターなしのコンストラクターがないにもかかわらず、このプロパティが true に設定され、AddingNew イベントが処理されていません。The property is set to true and the AddingNew event is not handled when the underlying list type does not have a parameterless constructor.

次のコード例は、コンポーネントAllowNewのプロパティBindingSourceを使用して、ユーザーがBindingSourceコンポーネントの基になるリストに新しい項目を追加できるようにする方法を示しています。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. このプロパティをにtrue設定するとDataGridView 、バインドされたコントロールに新しいレコードの行が表示されます。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

注釈

AllowNewプロパティの既定値は、基になるデータソースの種類によって異なります。The default value for the AllowNew property depends on the underlying data source type. 基になるリストがIBindingListインターフェイスを実装している場合、このプロパティは基になるリストに委任されます。If the underlying list implements the IBindingList interface, this property will delegate to the underlying list. それ以外の場合、基falseになるリストに次のいずれかの特性があると、このプロパティはを返します。Otherwise, this property will return false if the underlying list has any of the following characteristics:

  • プロパティによって決定されるIList.IsFixedSize固定サイズがあります。It has a fixed size, as determined by the IList.IsFixedSize property.

  • IList.IsReadOnlyプロパティによって決定される読み取り専用です。It is read-only, as determined by the IList.IsReadOnly property.

  • 項目の型にパラメーターなしのコンストラクターがありません。The item's type does not have a parameterless constructor.

注意

このプロパティの値が設定されると、getter は基になるリストへの呼び出しを参照しなくなります。Once the value of this property is set, the getter no longer refers the call to the underlying list. 代わりに、 ResetAllowNewメソッドが呼び出されるまでは、以前に設定された値を返します。Instead, it simply returns the value that was previously set until the ResetAllowNew method is called.

このプロパティを設定するListChangedと、 ListChangedEventArgs.ListChangedTypeがにListChangedType.Reset設定されたイベントが発生します。Setting this property raises the ListChanged event with ListChangedEventArgs.ListChangedType set to ListChangedType.Reset.

AllowNewプロパティをにtrue設定し、基になるリストの型にパラメーターなしのコンストラクターがない場合は、 AddingNewイベントを処理し、適切な型を作成する必要があります。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.

適用対象

こちらもご覧ください