続・複数のテキストボックスを同期したい(WPF + DataBinding編)

本日のテーマ

昨日と同じテーマです。もっといいやり方を思いついたので再挑戦します。

  • 1つのウィンドウの中に複数のテキストボックスが配置されたWPFアプリを考える
  • テキストボックスのどれかを変更すると、他のテキストボックスにもすべて同じ変更が適用されるようにしたい

昨日のコードは長すぎた

昨日はわざわざ拡張メソッドを作ったり、独自の制御機構を作ったり、ブログに載せるためにソースの改行位置をかわいらしくアレンジしたりといろいろ手を尽くしたわけです。

しかし、XAML をほんのちょっといじるだけでいとも簡単に昨日の問題が解決してしまいました。

C# なんか要らなかったんや。

昨日あれだけ気合を入れてサンプルを作ったのに……。

続きを読む

複数のテキストボックスを同期したい(WPF + Rx編)

2015/07/19追記: もっといい方法をこちらに公開しています。

本日のテーマ

  • 1つのウィンドウの中に複数のテキストボックスが配置されたWPFアプリを考える
  • テキストボックスのどれかを変更すると、他のテキストボックスにもすべて同じ変更が適用されるようにしたい

下図は、本日のサンプル画面です。一番上のテキストボックスを変更すると、下2つのテキストボックスの内容が自動的に変化します(左)。また、2番目のテキストボックスを変更したときは、上下のテキストボックスが変化します(右)。

f:id:tercel_s:20150718220256p:plain:w270 f:id:tercel_s:20150718220304p:plain:w270

なぜこんな要望が出たかは知らない。しかし世の中には知らない方が幸せなこともあるので (゚ε゚)キニシナイ!!

背景

初めに断わっておくと、今回のテーマはどちらかというと画面設計のアンチパターンに近いです。そのため、おそらく使いどころはほぼ無いのではと思っています。

以前、下図のようなタブベースの画面を作らされ っていたことがありました。

f:id:tercel_s:20150718224243p:plain:w270 f:id:tercel_s:20150718224252p:plain:w270

どのタブページの上部にもテキストボックスが配置されており、入力内容に基づいて様々な情報をタブページ内に表示する仕組みでした。

で、どういう話の行きがかりだったか、「各タブページの上部にあるテキストボックスを同期してくれたまえ」と言われてしまいました。

さて、今の僕ならどう実装するだろう。

2015/07/19追記: この記事に記載した方法よりもいい方法をこちらに公開しています。

続きを読む

Windowsコントロールのイベントを一時的に無効化したい (Windowsフォーム編)

本日のテーマ

  • 起動時に、画面の各コントロールに初期値が設定されるアプリについて考える
  • 初期値を設定している間だけ、コントロールのイベントを無効にしたい

要するに、TextChangedを一時的に黙らせたい。

背景

かつて、僕が某システムを開発していたとき、「アプリケーション画面の起動が遅い」という問題に直面したことがありました。

原因の一つは、画面のコントロールに初期値*1を設定する際、不要なイベントが一斉に走るせいでパフォーマンスが悪化していたためでした。

すぐさま、不要なイベントを一時的に無効化する処置がとられました。

さて、イベントの一時無効化は開発現場のあるあるパターンですが、力技の汚い実装でコードをとっ散らかす開発メンバが多いと感じたので、とりあえずここに僕がよく使う方法を書き残しておくことにします。

*1:前画面から引き継いだ情報など。

続きを読む

夢十夜

こんな夢を見た

続きを読む

僕は英語難民だった(←現在完了形・継続用法)

英語と仲直りがしたい

そういう思いに至る出来事がいろいろあったのですが、かいつまんで言うと、

  • @sx_7くんと出かけたとき、彼が外国人相手に流暢な英語を話しているのを聞いたり
  • @pi_cro_sさんと出かけたとき、日常会話くらいなら不自由を感じない程度の語学力があるという話を聞いたり

……した結果、友達だと思っていた2人がなんか急に遠く感じられるようになりました

なにを隠そう、僕は英語難民です

なにこの劣等感。

f:id:tercel_s:20150510014609p:plain:w300
(『だめっこどうぶつ 2―桑田着ぐるみ劇場 (バンブー・コミックス)』p.67)

とりあえず前置きはこのくらいにして本題いきます。

今日やること

  • 英語の5文型を思い出す

5文型というのは、あの S とか V とか O とか C とかが出てくるあれです。

  1. 第一文型 (SV)
  2. 第二文型 (SVC)
  3. 第三文型 (SVO)
  4. 第四文型 (SVOO)
  5. 第五文型 (SVOC)

どんなに複雑な英文でも、だいたいどれかに当てはまりますよ、という「型」みたいなものなので、まずはこれをやってみようと考えたのです。

……しかしその浅はかな行為が、まさかあのような悲劇を招くことになろうとは、まだこのとき思いもしませんでした。

続きを読む

Copyright (c) 2012 @tercel_s, @iTercel, @pi_cro_s.