BindingSource.Find メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
データ ソースから指定された項目を検索します。
オーバーロード
Find(PropertyDescriptor, Object) |
指定したプロパティ記述子を持つ項目のインデックスを検索します。 |
Find(String, Object) |
指定した名前のプロパティと値を持つリスト内の項目のインデックスを返します。 |
Find(PropertyDescriptor, Object)
指定したプロパティ記述子を持つ項目のインデックスを検索します。
public:
virtual int Find(System::ComponentModel::PropertyDescriptor ^ prop, System::Object ^ key);
public virtual int Find (System.ComponentModel.PropertyDescriptor prop, object key);
abstract member Find : System.ComponentModel.PropertyDescriptor * obj -> int
override this.Find : System.ComponentModel.PropertyDescriptor * obj -> int
Public Overridable Function Find (prop As PropertyDescriptor, key As Object) As Integer
パラメーター
- prop
- PropertyDescriptor
検索対象の PropertyDescriptor。
- key
- Object
検索条件として使用する prop
の値。
戻り値
PropertyDescriptor の指定した値を持つ項目の 0 から始まるインデックス。
実装
例外
基底のリストが IBindingList 型ではありません。
例
次のコード例は、Find メソッドの使用方法を示します。 完全な例については、クラスの概要に関するトピックを参照してください。
private void button1_Click(object sender, EventArgs e)
{
if (binding1.SupportsSearching != true)
{
MessageBox.Show("Cannot search the list.");
}
else
{
int foundIndex = binding1.Find("Name", textBox1.Text);
if (foundIndex > -1)
listBox1.SelectedIndex = foundIndex;
else
MessageBox.Show("Font was not found.");
}
}
Private Sub button1_Click(ByVal sender As Object, ByVal e As EventArgs) _
Handles button1.Click
If binding1.SupportsSearching <> True Then
MessageBox.Show("Cannot search the list.")
Else
Dim foundIndex As Integer = binding1.Find("Name", textBox1.Text)
If foundIndex > -1 Then
listBox1.SelectedIndex = foundIndex
Else
MessageBox.Show("Font was not found.")
End If
End If
End Sub
End Class
注釈
通常、このメソッドは、パラメーターで指定された prop
フィールドの値がパラメーターの値と等しい最初の行を検索するために、複雑なデータ バインディングケース key
で使用されます。
このメソッドは、基になるリスト IBindingList.Find の メソッドに対する要求を参照するだけです。 たとえば、基になるデータ ソースが 、DataTable、または DataViewの場合、DataSetこのメソッドは メソッドをDataView.IBindingList.Find呼び出します。 の動作 IBindingList.Find(一致する項目が見つからない場合に返される値など) は、基になるリスト内の メソッドの実装によって異なります。
こちらもご覧ください
適用対象
Find(String, Object)
指定した名前のプロパティと値を持つリスト内の項目のインデックスを返します。
public:
int Find(System::String ^ propertyName, System::Object ^ key);
public int Find (string propertyName, object key);
member this.Find : string * obj -> int
Public Function Find (propertyName As String, key As Object) As Integer
パラメーター
- propertyName
- String
検索するプロパティの名前。
- key
- Object
検索の対象となる指定した propertyName
を持つ項目の値。
戻り値
指定した名前のプロパティと値を持つ項目の 0 から始まるインデックス。
例外
基底のリストが、検索機能を実装した IBindingList ではありません。
propertyName
がリスト内のプロパティと一致しません。
例
次の例では、 メソッドを と共に使用 Find する方法を DataView示します。 この例を実行するには、コードを Windows フォームに貼り付け、フォームのコンストラクターまたはLoadイベント処理メソッドから を呼び出PopulateDataViewAndFind
します。 フォームでは、 名前空間と System.IO 名前空間をSystem.Xmlインポートする必要があります。
private void PopulateDataViewAndFind()
{
DataSet set1 = new DataSet();
// Some xml data to populate the DataSet with.
string musicXml =
"<?xml version='1.0' encoding='UTF-8'?>" +
"<music>" +
"<recording><artist>Coldplay</artist><cd>X&Y</cd></recording>" +
"<recording><artist>Dave Matthews</artist><cd>Under the Table and Dreaming</cd></recording>" +
"<recording><artist>Natalie Merchant</artist><cd>Tigerlily</cd></recording>" +
"<recording><artist>U2</artist><cd>How to Dismantle an Atomic Bomb</cd></recording>" +
"</music>";
// Read the xml.
StringReader reader = new StringReader(musicXml);
set1.ReadXml(reader);
// Get a DataView of the table contained in the dataset.
DataTableCollection tables = set1.Tables;
DataView view1 = new DataView(tables[0]);
// Create a DataGridView control and add it to the form.
DataGridView datagridview1 = new DataGridView();
datagridview1.AutoGenerateColumns = true;
this.Controls.Add(datagridview1);
// Create a BindingSource and set its DataSource property to
// the DataView.
BindingSource source1 = new BindingSource();
source1.DataSource = view1;
// Set the data source for the DataGridView.
datagridview1.DataSource = source1;
// Set the Position property to the results of the Find method.
int itemFound = source1.Find("artist", "Natalie Merchant");
source1.Position = itemFound;
}
Private Sub PopulateDataViewAndFind()
Dim set1 As New DataSet()
' Some xml data to populate the DataSet with.
Dim musicXml As String = "<?xml version='1.0' encoding='UTF-8'?>" & _
"<music>" & _
"<recording><artist>Coldplay</artist><cd>X&Y</cd></recording>" & _
"<recording><artist>Dave Matthews</artist><cd>Under the Table and Dreaming</cd></recording>" & _
"<recording><artist>Natalie Merchant</artist><cd>Tigerlily</cd></recording>" & _
"<recording><artist>U2</artist><cd>How to Dismantle an Atomic Bomb</cd></recording>" & _
"</music>"
' Read the xml.
Dim reader As New StringReader(musicXml)
set1.ReadXml(reader)
' Get a DataView of the table contained in the dataset.
Dim tables As DataTableCollection = set1.Tables
Dim view1 As New DataView(tables(0))
' Create a DataGridView control and add it to the form.
Dim datagridview1 As New DataGridView()
datagridview1.AutoGenerateColumns = True
Me.Controls.Add(datagridview1)
' Create a BindingSource and set its DataSource property to
' the DataView.
Dim source1 As New BindingSource()
source1.DataSource = view1
' Set the data source for the DataGridView.
datagridview1.DataSource = source1
' Set the Position property to the results of the Find method.
Dim itemFound As Integer = source1.Find("artist", "Natalie Merchant")
source1.Position = itemFound
End Sub
注釈
メソッドは Find 、基になるリストが検索が実装された である IBindingList 場合にのみ使用できます。 このメソッドは、基になるリスト IBindingList.Find の メソッドに対する要求を参照するだけです。 たとえば、基になるデータ ソースが 、、または DataViewの場合、DataSetこのメソッドは にPropertyDescriptor変換propertyName
し、 メソッドをIBindingList.Find呼び出します。 DataTable の動作 Find(一致する項目が見つからない場合に返される値など) は、基になるリスト内の メソッドの実装によって異なります。
プロパティ名の比較では、大文字と小文字は区別されません。
適用対象
.NET