SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

C#たんと学ぶ/わりと硬派なソフトウェア開発講座

C#たんと学ぶ/わりと硬派なソフトウェア開発講座
第2-2回「デスクトップアプリケーション」

C#たんと学ぶ わりと硬派なソフトウェア開発講座(4)

  • X ポスト
  • このエントリーをはてなブックマークに追加

データ更新通知

C#たん トーク
さて、コマンド実行の結果、色々とデータが更新されます。
C++たん トーク
えーっと、今回の15パズルの場合、どこかセルが入れ替わるわけよね。盤面の状態っていうデータが書き換わったと。
あとは、手数が増えたり、経過時間が増えたり。
あっ、経過時間は、コマンド実行の結果というか、タイマーイベントを使って毎秒更新ね。
C#たん 閉じ目2
はい。そして、データ更新に伴って、GUIの画面を書き換える必要があります。

 説明を簡素化するために、15パズルのうち、手数を表示する部分にだけ注目しましょう。

 ちょっと原始的な方法ですが、開発者自身が、イベントハンドラー内で画面を書き換えるという単純な方法もあります。以下のようなコードを書くということです。

int count = 0;
 
var textCount = new TextBlock();
var buttonMove = new Button { Content = "移動" };
buttonMove.Click += (sender, e) =>
{
    count++;
    textCount.Text = count.ToString();
};
var buttonInit = new Button { Content = "初期化" };
buttonInit.Click += (sender, e) =>
{
    count = 0;
    textCount.Text = count.ToString();
};

 「countを更新したらかならずテキストブロックの内容を書き換える」というような記述が必要になります。このやり方は、データの数や、データを表示したいGUI上の場所が増えた時に管理しきれなくなります。また、前節で説明した、「イベントハンドラー内に書くのはイベントとコマンドの対応付けだけ」という目標も達成できていません。

C#たん トーク
そこで、データバインディング(後述)という考え方が出てきます。
VBたん 苦笑
もっとも、扱うデータの数が少ないうちはイベントハンドラーに色々書いちゃう方が早いんだけどもねー。
C++たん トーク2
まあ、データの数は、機能追加してるうちに、なんか気が付きゃ増えてるものよ。
後になって、「最初からデータバインディングを使っておけば」なんてこともあるから気を付けないと。

次のページ
まとめ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
C#たんと学ぶ/わりと硬派なソフトウェア開発講座連載記事一覧

もっと読む

この記事の著者

C#たん ソフトウェア開発講座 制作委員会(シーシャープタン)

ソフトウェアに求められる要求の高度化とともに大きくなる開発者への負担を、開発ツールやフレームワーク、時には萌え力を頼りに軽減できないか考えるプロジェクト。C#たんは単なるマスコットかと思いきや、割と毒舌。自分のことは棚に上げて、「萌えればいいってもんじゃないですよ?」が信条。twitter: @cs...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6019 2011/07/04 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング