アクセスランキング 定点ログ 3.26 C#における学習法について - スポンサー広告C#

直列つなぎ。 -とある発達障害者の記録

知識と知識を繋ぐためのblog。 広汎性発達と診断されました。ぜんぜん役に立ってないけど。月収13万円(うち手取り11万)、家賃4万円で生活するひつじ人間。モウマンタイ。

  

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

 スポンサー広告

   

定点ログ 3.26 C#における学習法について

 闇雲に動くサンプルを探したりしているが。
 今はデータバインディングに挑戦している。自力で動くものは1~2個程度だった。


 複雑なモノほど、省略があったり、組み込みに手順があったりして自力で動かす事が困難なものが多い。まずは、既存のソースに関する把握と図解。次に単純なものを造り、応用につなげていく。





 Gimp2やPaint.net で図解を書こうとして2時間ほど費やした
 具体的には、色の変更で20分ほど悩んだり(paint.net)、切り取るとαチャンネルのせいで下地ごと消えてしまうので、いちいちαチャンネルを削除する必要があったり(Gimp2)
 文字入れのあと、いちいちレイヤーを統合しないと他の操作が出来なかったり(Gimp2)
    

 ヘビーユーザー向けのセッティングになっているという事だけは分かった・・・・orz


Gimpの設定がないなと思ったら「編集」内にあるらしい。そこは普通「ツール」とかだろと突っ込みたくなった。しかも上記の挙動に関する設定はないらしい。これで使えという事か・・・・。


 何をやるにも苦労させられている。 使うのは良いんだが、サイトを熟読しないといけないのかもしれない。



Windowsフォームにおける「データ・バインディング」
http://www.atmarkit.co.jp/fdotnet/chushin/introwinform_06/introwinform_06_01.html 

 サンプルコードをダウンロード。
 内部の仕組みはごく単純で、
 BindingMultiRow_Form.cs内でdataGridViewに各プロパティを設定しDataSet型を宣言、View_Form.cs内でDataSet内の引数に応じて、変更状態をpreviewするというもの。

 単純とは言っても、仕組みを理解してなければ書けない。

  _ds = ds; みたいな書き方がよくある。

 BindingMultiRow_Form.cs で   Ds.ReadXml(DataFileName); つまりXMLを読み込む
    ↓
 イベント呼び出し(DebugViewToolStripMenuItem_Click)
    DataSetを引数として渡す
   ↓
  
 View_Form.cs 内で
   _ds = ds;
      return base.ShowDialog(owner);


 同時にShownイベントが実行される
    ここでスイッチ文による条件分岐
    row.RowState 内の状態によってStateValueの値が変わるという仕組みだ。


 ShowDialogメソッドで、返り値としてenumのDialogResultを返す。
 また、Form側のDataSetをコピーして保持する(つまり _ds = ds)

 データバインディングそのものは
   Me_Showメソッド内で
  this.XML_BindingSource.DataSource = Ds.Tables["data"]
  として書かれている。

 これにより”data”テーブル内で紐づけが行われる。

 XMLが使われてるのもポイントかも。自作のアプリも、CSVからXMLに置き換えたいところだ。
 

 XMLは編集も容易だし?
 メソッド内でusing節も使われているけど、活用したことがない。


 殆ど動作可能なサンプルコードありきの学習なので効率悪い。


 

  

(2)データ・バインディングで「現在行のデータを表示」

http://www.atmarkit.co.jp/fdotnet/chushin/introwinform_06/introwinform_06_02.html

 

 変数をメンバーとして置くのと同時にXMLのパスを読み込んでいる。

 System.IO.Path.Combineメソッドで実行ファイル内のXMLパスを取得。
 
 FileOpenToolStripMenuItem_Clickイベント
   データバインディング
      this.XML_BindingSource.DataSource = Ds.Tables["data"];
   この文の直下でコードブロックが入れられているが、これは任意だと思う。
      こうすると見やすくなる。

  Date_TextBoxでデータバインディング  
     → プロパティ名、データソース名(XML_BindingSource ←デザイナで追加)、データメンバー名、書式設定で紐づけが行われる。


コードで分かるのはこれだけで、後は各コンポーネントについての説明を読んでいく。

 XML_BindingNavigator コンポーネントは、デザイナでXML_BindingSourceがバインディングソースに指定されている。


 >どのようなプロパティにバインディングができるのかといえば、[プロパティ]ウィンドウの[(DataBindings)]プロパティの「(詳細)」をクリックして[フォーマットと詳細バインド]ダイアログを表示すれば確認できる。

 とある。

 個人的にはこっちの方が直感的でいい。

 
  

 

(3)データ・バインディングで「選択候補としてデータを表示」

   http://www.atmarkit.co.jp/fdotnet/chushin/introwinform_06/introwinform_06_03.html  

  我ながら律儀なものである。

 仕組みは殆ど変わらなかったので割愛。

  Environment.NewLine というのを使ってたぐらい。



他人のblogを使ったりすると(たとえリンクを張るという行為でさえ)嫌われることも珍しくない。
性格の良い人間というのは案外少ないというか、差別しない人間などそもそも居ないらしい。

自分も差別はするし。 

 この場合はリンク先が消されたり、URLが変わったりする。
 流石にこういうサイトだとないものだが。


 エリート意識というのは何処の世界でも存在し、弱者は追いやられていく。

 今度から自称中国人という事にします🐑
関連記事
スポンサーサイト

 C#

     

-   0   Comments

Leave a comment

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。