ページ 1 / 1
[C#] クラスメンバをぐるんぐるんしたい
Posted: 2013年5月07日(火) 19:19
by オカピーα
お久しぶりです、お世話になっています。
先日作成した画面では、入力する項目がいっぱいあります。
それで、そこに入力された内容をクラスに落とさなければならないのですが
コード:
class1.name = name.Text;
class1.pass = pass.Text;
class1.comment = comment.Text;
といちいちやっているのはプログラマーとして恥ずべきことだと気づきました。
なんとかループでぐるんぐるんとお洒落に処理したいです。
コントロールとクラスメンバを連動させるいい方法を教えて下さい。
お願いします。
IDE : Visual C# 2008 Express Edition
OS : Windows XP
Re: [C#] クラスメンバをぐるんぐるんしたい
Posted: 2013年5月07日(火) 20:29
by softya(ソフト屋)
入力項目側は配列に出来ないんでしたっけ?
同じコントロールなら出来そうな気がするんですが。
※ C#に詳しくないので断言出来ません。
Re: [C#] クラスメンバをぐるんぐるんしたい
Posted: 2013年5月08日(水) 06:10
by YuO
データバインドしたい,ということでしょうか。
class1のname/pass/commentがプロパティなら,コントロール→モデルプロパティ方向のバインドは仕掛け無しに可能です。
逆方向は,INotifyPropertyChangedが必要になります。
また,検証系 (WinFormsにおけるValidating/Validatedなど。WPFにはイベント無し?) を使う場合にはIDataErrorInfoが必要になります。
# C#で公開メンバーがPascal Caseでないのは違和感……。
ちなみに,Visual Basic 6までのコントロール配列のようなものは,.NET Frameworkには存在しません。
単純な,コントロールの配列は当然作成できるので,InitializeComponentの後にでも初期化コードを書いておけば,配列として利用可能です。
ただ,純粋に同一の意味合いを持つコントロールが複数ある,ということはあまりないと思うので,コントロール配列が本当に解なのかは疑問です。
オフトピック
- イベントハンドラの共有ならコントロール配列にしなくてもできる
- 特定のプロパティを一気に変えることはデータバインドで可能
- 複数のコントロールを繰り返したいならば,ユーザーコントロールをFlowLayoutPanelに載せるなり,DataRepeater (VB Power Packs) 使うなりすればよく,前者のみ配列化が必要
と,純粋にコントロール配列が必要になる状況は少ないです。
Re: [C#] クラスメンバをぐるんぐるんしたい
Posted: 2013年5月09日(木) 17:07
by オカピーα
ありがとうございます!