[seasar-dotnet:847] Re: [S2Form]Gridタイプコントロールについて

Hiroaki Fujii [E-MAIL ADDRESS DELETED]
2008年 5月 28日 (水) 23:52:52 JST


みなさまへ

藤井です。

DataGridViewへのバインディングの動作の対応しているのは次の通りでした。
・配列
・System.Data.DataTable
・System.Collections.ArrayList
・System.Collections.Generic.List<T>
・System.ComponentMode.BindingList<T>

参考にしてください。


[E-MAIL ADDRESS DELETED] さんは書きました:
> 菊池さま
> 
> ご教授ありがとうございます。
> 山下真理です。
> 
> BindingList<T>メソッドがあったなんで、勉強不足でした。
> 早速、実装してみたいと思います。
> 
> ありがとうございました。
> 
> 山下真理
> 
> 
> ----- Original Message ----- 
> 送信者: 菊池和彦<[E-MAIL ADDRESS DELETED]>
> 宛先: [E-MAIL ADDRESS DELETED]
> 日付:Wednesday, May, 28, 2008, 11:43 AM
> 件名: [seasar-dotnet:843] Re:[S2Form]Gridタイプコントロールについて
> 
>>
>> 菊池です
>>
>>  IList<T> をバインディング可能にしたいのであれば
>>
>> System.ComponentModel.BindingList<T>
>> http://msdn.microsoft.com/ja-jp/library/ms132679(VS.80).aspx
>>
>>  を利用してみてはいかがでしょうか。(.NET Flamework 2.0以降)
>>
>>  コンストラクタが IList<T> を受けますので、DBFlute から戻った IList<T> を元に BindingList
> <T> を
>> new してデータバインディングにまわすだけで良いと思います。
>>
>>
>> 2008/05/28 11:27 koyak <[E-MAIL ADDRESS DELETED]>:
>>> 山下様
>>>
>>> 小谷です。
>>>
>>>> DBFluteで取得した、List<Entry>をDTOに一度変換しList<Dto>として、
>>>> やると、表示できるようになりました。
>>>> DBFluteから取得したList<Entry>をそのまま利用できないようでした。。。
>>> 現行の.NETの仕様が関係しているかもしれません。
>>> http://msdn.microsoft.com/ja-jp/library/system.windows.forms.binding(VS.80).aspx
>>> 上記ドキュメントを読む限りでは
>>> コントロールにバインディング可能なのは(Genericではない方の)IList実装型です。
>>>
>>>> List<Dto>として、
>>>> やると、表示できるようになりました。
>>> ここで使われているList<T>はGenricではないIListとGenericなIList<T>の両方を実装しています。
> 
>>> (名前がほぼ同じなのでわかりにくいですが)
>>>
>>> それに対してDBFluteのSelectListが返すリストはListResultBeanという型で、これは
>>> GenericであるIList<T>を実装しており、GenericではないIListは実装していません。
>>>
>>> まだ推測のレベルなのですが、上記の違いにより
>>> データが取れていてもDataGridViewに検索結果が反映されない、という
>>> 現象が起こっている可能性があります。
>>>
>>> はっきりとしたことがわかりましたら、またご連絡致します。
>>>
>>> -----------------------------------------------------------------------
>>> koyak
>>> [E-MAIL ADDRESS DELETED]
>>> -----------------------------------------------------------------------
>>>
>>> 2008/05/28 8:50  <[E-MAIL ADDRESS DELETED]>:
>>>> 山下です。
>>>>
>>>> いつもお世話になっております。
>>>>
>>>> Gridの表示ですが、0件のように行が表示されておりません。
>>>> DBFluteで取得した、List<Entry>をDTOに一度変換しList<Dto>として、
>>>> やると、表示できるようになりました。
>>>> DBFluteから取得したList<Entry>をそのまま利用できないようでした。。。
>>>>
>>>> public class HogeDto{
>>>>     public IList<Hoge> List { get; set; }
>>>> }
>>>>
>>>> public class DataDto{
>>>>    public string Name { get; set; }
>>>> }
>>>>
>>>> [Control("catList", "DataSource", "List")]
>>>> public partial class HogeForm : S2Form {
>>>>  public void Hoge(){
>>>>     DataDto hoge = new DataDto();
>>>>     hoge.Name = "ほげほげ";
>>>>     IList<DataDto> ls = new List<DataDto>();
>>>>     ls.Add(hoge);
>>>>     HogeDto dto = new HogeDto();
>>>>     dto.List = ls;
>>>>     this.DataSource = dto;
>>>>  }
>>>> }
>>>>
>>>>
>>>> ----- Original Message -----
>>>> 送信者: Hiroaki Fujii<[E-MAIL ADDRESS DELETED]>
>>>> 宛先: [E-MAIL ADDRESS DELETED]
>>>> 日付:Tuesday, May, 27, 2008, 03:38 PM
>>>> 件名: [seasar-dotnet:840] Re:[S2Form]Gridタイプコントロールについて
>>>>
>>>>>
>>>>> 藤井です。
>>>>>
>>>>> マッピングに関する認識はそのとおりです。
>>>>>
>>>>> 一つ、教えていただきたい点があります。
>>>>> Gridの表示ですが、0件のように行が表示されていないのでしょうか?
>>>>> それともDBFluteでの取得件数分だけ、行数があるのでしょうか?
>>>>> 列の状況も教えていただけると助かります。
>>>>>
>>>>>
>>>>> [E-MAIL ADDRESS DELETED] さんは書きました:
>>>>>> 山下です。
>>>>>>
>>>>>> ご回答ありがとうございます。
>>>>>>
>>>>>> 参考にさせていただき、プログラミングさせていただきました。
>>>>>> しかし、まだ、何かが足らないようで、Gridに反映されませんでした。
>>>>>> フォーム側の設定としては、DataGridViweのバインド列のプロパティの、
>>>>>> DataPropertyNameと、IList<Hoge>無いのHoge内のプロパティが
>>>>>> マッピングして、表示されるという認識でよろしいでしょうか?
>>>>>>
>>>>>> DBFlute側でのデータは、取得できているようでした。
>>>>>>
>>>>>> 山下 真理
>>>>>>
>>>>>>
>>>>>>> public class HogeDto{
>>>>>>>     public IList<Hoge> List { get; set; }
>>>>>>> }
>>>>>>>
>>>>>>> [Control("catList", "DataSource", "List")]
>>>>>>> public partial class HogeForm : S2Form {
>>>>>>>     public void Hoge(){
>>>>>>>            HogeDto dto = new HogeDto();
>>>>>>>             dto.List = (DBFluteの検索メソッドなど)
>>>>>>>            this.DataSource = dto;
>>>>>>>     }
>>>>>>> }
>>>>>>>
>>>>>>
>>>>>> ----- Original Message -----
>>>>>> 送信者: koyak<[E-MAIL ADDRESS DELETED]>
>>>>>> 宛先: [E-MAIL ADDRESS DELETED]
>>>>>> 日付:Monday, May, 26, 2008, 11:31 PM
>>>>>> 件名: [seasar-dotnet:837] Re:[S2Form]Gridタイプコントロールについて
>>>>>>
>>>>>>> 山下様
>>>>>>>
>>>>>>> 小谷です。
>>>>>>>
>>>>>>> ご利用いただき、ありがとうございます!
>>>>>>>
>>>>>>> ご質問の件ですが、
>>>>>>> >[Control("catList", "DataSource", "List")]
>>>>>>>
>>>>>>> この記述によって結び付けられるのは
>>>>>>> 「catList」の「DataSource」プロパティと、
>>>>>>> S2Formを継承したクラスがもつDataSourceプロパティに設定されている
>>>>>>> オブジェクトの「List」プロパティになります。
>>>>>>> (なので検索結果のリストを直接DataSourceプロパティに
>>>>>>> 設定しても反映されません)
>>>>>>>
>>>>>>> ※対応するドキュメント
>>>>>>> http://s2container.net.seasar.org/ja/s2windows-s2form.html#grid
>>>>>>>
>>>>>>> コードにすると下記のようなイメージです。
>>>>>>> (スペース省略のため、C#3.5の文法で書いています)
>>>>>>>
>>>>>>> public class HogeDto{
>>>>>>>     public IList<Hoge> List { get; set; }
>>>>>>> }
>>>>>>>
>>>>>>> [Control("catList", "DataSource", "List")]
>>>>>>> public partial class HogeForm : S2Form {
>>>>>>>     public void Hoge(){
>>>>>>>            HogeDto dto = new HogeDto();
>>>>>>>             dto.List = (DBFluteの検索メソッドなど)
>>>>>>>            this.DataSource = dto;
>>>>>>>     }
>>>>>>> }
>>>>>>>
>>>>>>> ボタンか何かでHogeメソッドを呼ぶとDBFluteを使って
>>>>>>> 検索を行い、結果をcatList上に表示するはずです。
>>>>>>>
>>>>>>> ----------------------------------------------------------------
>>>>>>> koyak
>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>> ----------------------------------------------------------------
>>>>>>>
>>>>>>> 2008/05/26 19:44  <[E-MAIL ADDRESS DELETED]>:
>>>>>>>> いつもお世話になっております。
>>>>>>>> 山下です。
>>>>>>>>
>>>>>>>> S2Continar 1.3.9
>>>>>>>> Quill 1.3.9
>>>>>>>> DBFlute 0.7.2
>>>>>>>> S2Form
>>>>>>>>
>>>>>>>> を利用させて頂いております。
>>>>>>>> Gridタイプコントロールを利用したく、コーディングをしております。
>>>>>>>>
>>>>>>>> DBFluteから取得した内容を、Gridに反映したく、Controlの定義方法について
>>>>>>>> 質問させていただきます。
>>>>>>>> Controlの指定は、下記のように設定をしております。
>>>>>>>>
>>>>>>>> [Control("catList", "DataSource", "List")]
>>>>>>>>
>>>>>>>> DataSourceに渡されるDtoのプロパティ名と、Grid(catList)の、
>>>>>>>> カラムDataPropertyNameの名称を同じにすることにより、
>>>>>>>> Grid表示されるようになると思うのですが、認識としましては、
>>>>>>>> あっておりますでしょうか?
>>>>>>>> DBFlute側で取得してきて、DataSourceに入れた後に、Gridに反映されて
>>>>>>>> いなく悩んでおります。
>>>>>>>>
>>>>>>>> Gridタイプコントロールについて、今あがっているドキュメント以外に、
>>>>>>>> 詳細に記載されているドキュメント等がありましたら、
>>>>>>>> URL等を教えていただけないでしょうか。
>>>>>>>>
>>>>>>>> 宜しくお願い致します。
>>>>>>>>
>>>>>>>> 山下
>>>>>>>> _______________________________________________
>>>>>>>> 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 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 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
>>>
>>
>>
>> -- 
>>  Kazuhiko Kikuchi <[E-MAIL ADDRESS DELETED]>
>>  Microsoft Valueable Professional - Visual C# 2004-2007
>> _______________________________________________
>> 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 メーリングリストの案内