[seasar-dotnet:861] Re: ユーザーコントロールのDataGridView+DataSourceの挙動について

koyak [E-MAIL ADDRESS DELETED]
2008年 6月 5日 (木) 00:16:52 JST


山下様

小谷です。

・・・て、既に藤井さんが回答されていますね(^^;

勇み足かもしれませんが、
以下は、問題が藤井さんの仮定通りだった場合の話です。

もしかするとDataGridViewコントロールの
AutoGenerateColumnsというプロパティの設定が
関係しているかもしれません。

このプロパティは
DataSource、またはDataMemberに応じて列を
自動で生成します。

http://msdn.microsoft.com/ja-jp/library/system.windows.forms.datagridview.autogeneratecolumns(VS.80).aspx

このプロパティをfalseにしておけば、
DataGridViewの列がもつDataPropertyNameと
DataSource内のデータがもつプロパティがバインドされて
表示されるはずです。
(ただし、列が自動で生成されなくなるので予めDataGridViewに
デザイナなりコードなりで列を作っておく必要があります。)
(自分の環境では確認できました)

また、このAutoGenerateColumnsプロパティは
VisualStudioのデザイナ上で表示されるプロパティ一覧には
表示されていないようです。
そのため、設定するにはコード上で行う必要があるかと思います。

2008/06/05 0:09 Hiroaki Fujii <[E-MAIL ADDRESS DELETED]>:
> 山下さん。
>
> 藤井です。
> ちょっと調査してみたいのですが、今ひとつイメージができておりませんので、
> 下記の通りでよいか、教えてください。
>
> DataGridViewにA列がある。
> そのDataGridViewにバインドしたいDTOにはAとBのプロパティがある。
> このDTOのListか配列かをDataGridViewにバインドすると、DataGridViewには
> A列だけではなくB列も追加され、DTOの数だけ行が表示されている。
>
> こんな感じでしょうか?
>
>
> [E-MAIL ADDRESS DELETED] さんは書きました:
>> いつもお世話になっております。
>> 山下です。
>>
>> S2Continer.NET 1.3.9
>> Quill 1.3.9
>> Visual Studio C# 2008 Express Edition
>>
>> を利用しております。
>>
>> ユーザーコントロール内で、DataGridViewを作成し、
>> その中、DataGridViewに対して、S2FormのDataSourceを
>> 利用して、DataGridViewの特定の列とDataSourceの特定の
>> 値をバインドさせたいと考えております。
>>
>> ユーザーコントロール内のDataGridViewとDataSourceは、
>> バインドできており、列が作成され表示されるのですが、
>> 既存にある列に対してのバインドがわかりません。
>>
>> ユーザーコントロール内のデータをバインドさせるには、
>> ユーザーコントロール内で、アクセッサを利用しなければ
>> いけないと思いますが、DataGridViewの特定の列に対する
>> アクセッサの記述方法がわからず困っております。
>>
>> 行おうとしていること自体が、不可能かもしれませんが、
>> お手数をご教授いただけるとありがたい次第です。
>>
>> ご迷惑をおかけしますが、よろしくお願いいたします。
>>
>> 山下 真理
>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


seasar-dotnet メーリングリストの案内