1

単純なことを願っていますが、そのようなオプションは見つかりません。

私はデータ テーブルを持っています。たとえば、10 行あります。フォームの一部のフィールドは、それぞれ名前で table.columns にバインドされています。

グリッドを持つ別のフォームでは、グリッドをスクロールすると、グリッドが DataTable レコード変更イベントをトリガーする魔法を実行するため、詳細フィールドが期待どおりに更新されます。

データグリッドを使用せずに、フォームの読み込み/表示の更新のためにテーブルを特定の行に移動するように指示するにはどうすればよいですか...例:

DataTable MyTable = new DataTable();

MyTable = GetResultsFromSQL();  // returns the 10 rows

MyTable.LoadTheDataForRow(3);
MyTable.LoadTheDataForRow(7);
MyTable.LoadTheDataForRow(2);

テーブルで foreach 行を使用できることはわかっていますが、すべての行を処理するのではなく、特定の行に限定する必要があるため、明示的に使用する必要があります。

LoadDataRow() を見てきましたが、これはデータをサーバーにプッシュするためのもののようです。私が望むものではありません...テーブルの「現在の」行を特定の行にしたいだけです...

ありがとう

さらに調査した結果、グリッドなどの FORM ベースのコントロール「BindingSource」(またはその派生) でこれが可能であることがわかりました。しかし、明らかに、.Net エンジンがボンネットの下で行っていることがあり、最終的に「BindingSource」にトリガーされるものに特定の行を「ロード」します... DataTable には、によってトリガーされるように見える RowChanging および RowChanged イベントがあります。 OnRowChanging / OnRowChanged デリゲートですが、どの「行」をアクティブにするかをデータ テーブルに伝えるにはどうすればよいでしょうか。

フォームコントロールはバインディングソースに対してこれを行うことができますが、これらの OnRowChanging イベントをトリガーするために内部で実際に何が起こっているのか...データテーブルや行などを再ロードしたくありません。グリッド、リストボックス、コンボボックスなどの「アクティブな」行。

4

1 に答える 1

1

やってみました:

MyDataTable.Rows[3];
MyDataTable.Rows[7];
MyDataTable.Rows[2];
于 2009-10-30T17:55:45.697 に答える