2016-10-30 3 views
2

データのDataTableを埋めるためには、WinForms。どのようにTableAdapterのを見つけ、スタンダールのDataGridViewにデザイン時に

enter image description here

あまりにも空に見え、私がするつもりのデータがカスタマイズされ、満たされたグリッドに

をどのように見えるかは不明ですより複雑に見えるようにグリッドを拡張しますが、結果はデー​​タがある実行時にのみ表示されます。

グリッドでの結果の表示方法を確認するには、設計時にDataTableに入力します。 だから私はDataSourceは、次のコードを使用してのBindingSourceによって割り当てられたとき、私は データソースからthis.dBTestDataSet.MyDataTableを得ることができます

にthis.MyDataTableTableAdapter.Fill(this.dBTestDataSet.MyDataTable)

をコードするperfromする必要があります。

if ((DataSource is BindingSource) && String.IsNullOrEmpty(DataMember)) 
    { 
    BindingSource bindingSource = (DataSource as BindingSource); 
    if ((bindingSource.DataSource is DataSet) && (bindingSource.DataMember is String)) 
    { 
     DataSet dataSet = (bindingSource.DataSource as DataSet); 
     DataTable dataTable = dataSet.Tables[bindingSource.DataMember]; 
     return dataTable; 
    } 
    } 

は、今私はMyDataTable

を持っていますが、どのように私はMyDataTableTableAdapter入手できますか?

開発環境が正しく、すべてのDataTableの下のDataAdapterを示しているが、私はporjectコード

でMyDataTableとMyDataTableTableAdapter間の任意の接続が表示されません。

enter image description here

enter image description here

+0

あなたの目標は何ですか? –

+0

私が理解したように、TableProviderには設計時にアクセスする必要があります。または、**デザインタイム**のグリッドでデータテーブルから実際のデータを表示する別の方法があります。 IMHO、これは便利な機能ですが、Embarcadero RAD Studio(Delphi)では、DataSetのライブデータを添付された(バインドされた)すべてのデータコントロールで見ることができます。 – BlackWitcher

答えて

1

私はそれが設計者に実際のデータをロードするためには良い考えではありません信じています。 DataGridViewは、ASP.NET GridViewコントロールのためにWebフォームデザイナーが行うのと同じ方法で、偽のデータを使用して入力することができます。

Q: MyDataTableTableAdapterを取得するにはどうすればよいですか?私はporjectコード内のMyDataTableと MyDataTableTableAdapterの間の接続が見つかりません。

<TableAdapter BaseClass="System.ComponentModel.Component" 
DataAccessorModifier="AutoLayout, AnsiClass, Class, Public" 
DataAccessorName="CategoryTableAdapter" 
GeneratorDataComponentClassName="CategoryTableAdapter" 
Name="Category" 
UserDataComponentName="CategoryTableAdapter"> 

あなたは:

各データセットは、データセットスキーマの定義が含まれており、またTableAdapterクラスを生成するために使用されるいくつかの注釈が含まれているXSDファイルを持って、例えばそれはのようないくつかのノードが含まれていますファイルを解析し、DataTableに関連するTableAdapterを抽出できます。上記のように、xmlはTableAdapterDataTableが互いに関連するポイントです。

Visual Studio APIメソッドを使用してxsdファイルを取得できます。さらに簡単な回避策として、BuildActionEmbedded Resourceに設定し、コンパイルされたアセンブリから取得することもできます。

あなたの要件はデザイナー以来、UserControlのコンストラクタで、あなたがフォームにごUserControlのインスタンスを置くこの方法をあなたのDataGridViewUserControlで制御し、負荷データを入れている満足して別のオプションUserControlのコンストラクタを実行すると、DataGridViewはデータで埋められます。

ColumnsプロパティをDataGridViewに公開する場合は、this solutionを使用できます。

+0

[この例](https://dotnetfiddle.net/sHTJNZ)の実際のデータを使用して、デザイン時にデータテーブルをどのように埋めるかを確認できます。私は、それが単なる楽しい(そして学習目的のための)ものなので、答えにそれを含めない方が好きです。私は 'XSD'ファイルをどのように解析するかについて考えを書いています。この例では、 'XDS'ファイルのために' Build Action'を 'Embedded Resource'に設定しました。しかし、一般的に私はこのように実際の環境で使用することはお勧めしません。私が共有した第二の選択肢はより良いです。 –

+0

この回答または[リンクされた投稿]に関するご質問がある場合はお知らせください(http://stackoverflow.com/questions/36787383/expose-column-property-of-a-datagridview-in-usercontrol-and-make -it-editable-vi)や有用なものが見つかった場合: –

+0

あなたの新しい質問はここにあった要件に関連しているようです。この投稿をお見逃しなく:[UserControlのDataGridViewのColumnsプロパティを公開し、デザイナーを介して編集可能にする](http://stackoverflow.com/questions/36787383/expose-columns-expert-c--datagridview-in- usercontrol-and-make-it-editable-vi) –

関連する問題