今日言いたいことは、「浴槽が完全に詰まってしまったけど自分でなんとかしたい人は、とりあえずラバーカップを試してみよう」です。それ以上のことはなに一つ書いていません。
続きを読む続・複数のテキストボックスを同期したい(WPF + DataBinding編)
複数のテキストボックスを同期したい(WPF + Rx編)
2015/07/19追記: もっといい方法をこちらに公開しています。
本日のテーマ
下図は、本日のサンプル画面です。一番上のテキストボックスを変更すると、下2つのテキストボックスの内容が自動的に変化します(左)。また、2番目のテキストボックスを変更したときは、上下のテキストボックスが変化します(右)。
なぜこんな要望が出たかは知らない。しかし世の中には知らない方が幸せなこともあるので (゚ε゚)キニシナイ!!
背景
初めに断わっておくと、今回のテーマはどちらかというと画面設計のアンチパターンに近いです。そのため、おそらく使いどころはほぼ無いのではと思っています。
以前、下図のようなタブベースの画面を作らされ っていたことがありました。
どのタブページの上部にもテキストボックスが配置されており、入力内容に基づいて様々な情報をタブページ内に表示する仕組みでした。
で、どういう話の行きがかりだったか、「各タブページの上部にあるテキストボックスを同期してくれたまえ」と言われてしまいました。
さて、今の僕ならどう実装するだろう。
2015/07/19追記: この記事に記載した方法よりもいい方法をこちらに公開しています。
Windowsコントロールのイベントを一時的に無効化したい (Windowsフォーム編)
本日のテーマ
- 起動時に、画面の各コントロールに初期値が設定されるアプリについて考える
- 初期値を設定している間だけ、コントロールのイベントを無効にしたい
要するに、TextChanged
を一時的に黙らせたい。
背景
かつて、僕が某システムを開発していたとき、「アプリケーション画面の起動が遅い」という問題に直面したことがありました。
原因の一つは、画面のコントロールに初期値*1を設定する際、不要なイベントが一斉に走るせいでパフォーマンスが悪化していたためでした。
すぐさま、不要なイベントを一時的に無効化する処置がとられました。
さて、イベントの一時無効化は開発現場のあるあるパターンですが、力技の汚い実装でコードをとっ散らかす開発メンバが多いと感じたので、とりあえずここに僕がよく使う方法を書き残しておくことにします。
*1:前画面から引き継いだ情報など。
夢十夜
こんな夢を見た
プロジェクトに失敗し、私用携帯にまで昼夜を問わずひっきりなしに苦情の電話がかかってくる状況になり、ついに客先の社長に謝りに行く夢を見た。
社長室には鍵がかかっていたが、しつこくノックをし続けたら入れてもらえたので土下座した。
→つづく
— たーせる (@tercel_s) 2015, 5月 23
僕は英語難民だった(←現在完了形・継続用法)
英語と仲直りがしたい
そういう思いに至る出来事がいろいろあったのですが、かいつまんで言うと、
……した結果、友達だと思っていた2人がなんか急に遠く感じられるようになりました。
なにを隠そう、僕は英語難民です。
なにこの劣等感。
(『だめっこどうぶつ 2―桑田着ぐるみ劇場 (バンブー・コミックス)』p.67)
とりあえず前置きはこのくらいにして本題いきます。
今日やること
- 英語の5文型を思い出す
5文型というのは、あの S とか V とか O とか C とかが出てくるあれです。
- 第一文型 (SV)
- 第二文型 (SVC)
- 第三文型 (SVO)
- 第四文型 (SVOO)
- 第五文型 (SVOC)
どんなに複雑な英文でも、だいたいどれかに当てはまりますよ、という「型」みたいなものなので、まずはこれをやってみようと考えたのです。
……しかしその浅はかな行為が、まさかあのような悲劇を招くことになろうとは、まだこのとき思いもしませんでした。