BindingContext.Item[] プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
BindingManagerBase を取得します。
オーバーロード
Item[Object, String] |
指定したデータ ソースおよびデータ メンバーに関連付けられた BindingManagerBase を取得します。 |
Item[Object] |
指定したデータ ソースに関連付けられた BindingManagerBase を取得します。 |
Item[Object, String]
指定したデータ ソースおよびデータ メンバーに関連付けられた BindingManagerBase を取得します。
public:
property System::Windows::Forms::BindingManagerBase ^ default[System::Object ^, System::String ^] { System::Windows::Forms::BindingManagerBase ^ get(System::Object ^ dataSource, System::String ^ dataMember); };
public System.Windows.Forms.BindingManagerBase this[object dataSource, string dataMember] { get; }
public System.Windows.Forms.BindingManagerBase this[object dataSource, string? dataMember] { get; }
member this.Item(obj * string) : System.Windows.Forms.BindingManagerBase
Default Public ReadOnly Property Item(dataSource As Object, dataMember As String) As BindingManagerBase
パラメーター
- dataSource
- Object
特定の BindingManagerBase に関連付けられたデータ ソース。
- dataMember
- String
特定の BindingManagerBase に解決される情報を保持するナビゲーション パス。
プロパティ値
指定したデータ ソースおよびデータ メンバーの BindingManagerBase。
例外
指定された dataMember
がデータ ソース内に存在しません。
例
次のコード例では、 を使用して特定の Item[] バインディングの を BindingManagerBase 取得する方法を示します。 また、 の イベントBindingManagerBaseをBindingComplete処理して、コントロール値の 1 つが変更されたときに、同じデータ ソースにバインドされた複数のコントロールが確実に同期されるようにする方法も示します。 この例を実行するには、コードを Windows フォームに貼り付け、フォームのコンストラクターまたはLoadイベント処理メソッドから メソッドを呼び出InitializeControlsAndData
します。
private void InitializeControlsAndData()
{
// Initialize the controls and set location, size and
// other basic properties.
this.dataGridView1 = new DataGridView();
this.textBox1 = new TextBox();
this.textBox2 = new TextBox();
this.dataGridView1.ColumnHeadersHeightSizeMode =
DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dataGridView1.Dock = DockStyle.Top;
this.dataGridView1.Location = new Point(0, 0);
this.dataGridView1.Size = new Size(292, 150);
this.textBox1.Location = new Point(132, 156);
this.textBox1.Size = new Size(100, 20);
this.textBox2.Location = new Point(12, 156);
this.textBox2.Size = new Size(100, 20);
this.ClientSize = new Size(292, 266);
this.Controls.Add(this.textBox2);
this.Controls.Add(this.textBox1);
this.Controls.Add(this.dataGridView1);
// Declare the DataSet and add a table and column.
DataSet set1 = new DataSet();
set1.Tables.Add("Menu");
set1.Tables[0].Columns.Add("Beverages");
// Add some rows to the table.
set1.Tables[0].Rows.Add("coffee");
set1.Tables[0].Rows.Add("tea");
set1.Tables[0].Rows.Add("hot chocolate");
set1.Tables[0].Rows.Add("milk");
set1.Tables[0].Rows.Add("orange juice");
// Add the control data bindings.
dataGridView1.DataSource = set1;
dataGridView1.DataMember = "Menu";
textBox1.DataBindings.Add("Text", set1,
"Menu.Beverages", true, DataSourceUpdateMode.OnPropertyChanged);
textBox2.DataBindings.Add("Text", set1,
"Menu.Beverages", true, DataSourceUpdateMode.OnPropertyChanged);
BindingManagerBase bmb = this.BindingContext[set1, "Menu"];
bmb.BindingComplete += new BindingCompleteEventHandler(bmb_BindingComplete);
}
private void bmb_BindingComplete(object sender, BindingCompleteEventArgs e)
{
// Check if the data source has been updated, and that no error has occurred.
if (e.BindingCompleteContext ==
BindingCompleteContext.DataSourceUpdate && e.Exception == null)
// If not, end the current edit.
e.Binding.BindingManagerBase.EndCurrentEdit(); ;
}
Dim WithEvents bmb As BindingManagerBase
Private Sub InitializeControlsAndData()
' Initialize the controls and set location, size and
' other basic properties.
Me.dataGridView1 = New DataGridView()
Me.textBox1 = New TextBox()
Me.textBox2 = New TextBox()
Me.dataGridView1.ColumnHeadersHeightSizeMode = _
DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.dataGridView1.Dock = DockStyle.Top
Me.dataGridView1.Location = New Point(0, 0)
Me.dataGridView1.Size = New Size(292, 150)
Me.textBox1.Location = New Point(132, 156)
Me.textBox1.Size = New Size(100, 20)
Me.textBox2.Location = New Point(12, 156)
Me.textBox2.Size = New Size(100, 20)
Me.ClientSize = New Size(292, 266)
Me.Controls.Add(Me.textBox2)
Me.Controls.Add(Me.textBox1)
Me.Controls.Add(Me.dataGridView1)
' Declare the DataSet and add a table and column.
Dim set1 As New DataSet()
set1.Tables.Add("Menu")
set1.Tables(0).Columns.Add("Beverages")
' Add some rows to the table.
set1.Tables(0).Rows.Add("coffee")
set1.Tables(0).Rows.Add("tea")
set1.Tables(0).Rows.Add("hot chocolate")
set1.Tables(0).Rows.Add("milk")
set1.Tables(0).Rows.Add("orange juice")
' Add the control data bindings.
dataGridView1.DataSource = set1
dataGridView1.DataMember = "Menu"
textBox1.DataBindings.Add("Text", set1, "Menu.Beverages", _
True, DataSourceUpdateMode.OnPropertyChanged)
textBox2.DataBindings.Add("Text", set1, "Menu.Beverages", _
True, DataSourceUpdateMode.OnPropertyChanged)
' Get the BindingManagerBase for this binding.
bmb = Me.BindingContext(set1, "Menu")
End Sub
Private Sub bmb_BindingComplete(ByVal sender As Object, ByVal e As BindingCompleteEventArgs) _
Handles bmb.BindingComplete
' Check if the data source has been updated, and that no error has occurred.
If e.BindingCompleteContext = BindingCompleteContext.DataSourceUpdate _
AndAlso e.Exception Is Nothing Then
' If not, end the current edit.
e.Binding.BindingManagerBase.EndCurrentEdit()
End If
End Sub
注釈
でデータ ソースに複数のオブジェクトが含まれるオブジェクトのBindingセットを管理する場合BindingManagerBaseは、このオーバーロードを使用します。 たとえば、 には DataSet 、オブジェクトによってリンクされた複数の DataTable オブジェクトを DataRelation 含めることができます。 このような場合、 が正しい BindingManagerBaseを返せるようにBindingContextするには、ナビゲーション パスが必要です。
Note
パラメーターが有効な場合、プロパティはItem[]常に をdataMember
返BindingManagerBaseします。 は返 null
されません。
Binding使用可能なデータ ソースの一覧と、コントロールとデータ ソース間のバインディングの作成については、 クラスを参照してください。
目的のが BindingManagerBase リストを管理する場合は、ナビゲーション パスもリストで終わる必要があります。 たとえば、次の C# コードは TextBox 、注文テーブルの注文日にコントロールをバインドします。 ナビゲーション パスには、 、 TableName、 RelationNameが ColumnName含まれます。 ただし、 はBindingManagerBase、 と RelationName (リストにTableName解決される) のみを使用して取得する必要があります。
// The navigation path for a Binding ends with a property.
textBox1.DataBindings.Add
("Text", dataSet1, "Customers.custToOrders.OrderDate");
// The navigation path for the BindingManagerBase ends with a list.
BindingManagerBase bmOrders = this.BindingContext
[dataSet1, "Customers.custToOrders"];
を返す BindingManagerBase場合は、 と同じデータ ソース Binding を使用し、ナビゲーション パスのみを変更する必要があります。
メソッドを Contains 使用して、目的の が既に BindingManagerBase 存在するかどうかを確認します。
こちらもご覧ください
適用対象
Item[Object]
指定したデータ ソースに関連付けられた BindingManagerBase を取得します。
public:
property System::Windows::Forms::BindingManagerBase ^ default[System::Object ^] { System::Windows::Forms::BindingManagerBase ^ get(System::Object ^ dataSource); };
public System.Windows.Forms.BindingManagerBase this[object dataSource] { get; }
member this.Item(obj) : System.Windows.Forms.BindingManagerBase
Default Public ReadOnly Property Item(dataSource As Object) As BindingManagerBase
パラメーター
- dataSource
- Object
特定の BindingManagerBase に関連付けられたデータ ソース。
プロパティ値
指定したデータ ソースの BindingManagerBase。
例
次のコード例では、3 つのBindingManagerBaseオブジェクトを返します。1 つは 、 DataViewの場合は 1 つ、ArrayListコントロールにTextBox属する の Binding は 1 つDataSourceです。
void ReturnBindingManagerBase()
{
// Get the BindingManagerBase for a DataView.
BindingManagerBase^ bmCustomers = this->BindingContext[ myDataView ];
/* Get the BindingManagerBase for an ArrayList. */
BindingManagerBase^ bmOrders = this->BindingContext[ myArrayList ];
// Get the BindingManagerBase for a TextBox control.
BindingManagerBase^ baseArray = this->BindingContext[ textBox1->DataBindings[ nullptr ]->DataSource ];
}
private void ReturnBindingManagerBase()
{
// Get the BindingManagerBase for a DataView.
BindingManagerBase bmCustomers =
this.BindingContext [myDataView];
/* Get the BindingManagerBase for an ArrayList. */
BindingManagerBase bmOrders =
this.BindingContext[myArrayList];
// Get the BindingManagerBase for a TextBox control.
BindingManagerBase baseArray =
this.BindingContext[textBox1.DataBindings[0].DataSource];
}
Private Sub ReturnBindingManagerBase()
' Get the BindingManagerBase for a DataView.
Dim bmCustomers As BindingManagerBase = _
Me.BindingContext(myDataView)
' Get the BindingManagerBase for an ArrayList.
Dim bmOrders As BindingManagerBase = _
Me.BindingContext(myArrayList)
' Get the BindingManagerBase for a TextBox control.
Dim baseArray As BindingManagerBase = _
Me.BindingContext(Text1.DataBindings(0).DataSource)
End Sub
注釈
必要な がナビゲーション パスを BindingManagerBase 必要としない場合は、このオーバーロードを使用します。 たとえば、 で または DataTableDataSourceを使用するオブジェクトのBindingセットをArrayList管理する場合BindingManagerBase、ナビゲーション パスは必要ありません。
Note
プロパティは Item[] 常に を返し、 BindingManagerBaseを返 null
すことはありません。
Binding使用可能なデータ ソースの一覧と、コントロールとデータ ソース間のバインディングの作成については、 クラスを参照してください。
こちらもご覧ください
適用対象
.NET