‫お帰りなさい｡
‫このビデオでは､ ピザにトッピングを追加して､ いつでもピザを配達できるアプリケーションを作成します｡
‫ピザを注文するときに､ サラミを追加したり､ マッシュルームを追加したり､ モッツァレラチーズを追加したりするわけです｡
‫そして､ それらをすべて追加すると､ ご覧のように､ 上部にあるadd allがアクティブになり､ ご覧のように､
‫3つのステートがあり､ yesステートとtrueステートがあります｡
‫そして､ 空の状態と偽の状態を持つ｡
‫わかりました｡
‫だから､ そういうものを作るんです｡
‫そして､ そう､ 先に進みましょう｡
‫まず､ ここはもう少しスペースを確保する必要があるので､ グリッドではなくスタックパネルを使うことにします｡
‫繰り返しになりますが､ スタックパネルと同様に､ グリッドは､ 例えば､ どちらかといえば基本的なものを用意したい場合に､
‫設定に手間がかかるからです｡
‫そして､ ここにラベルを付けたいのですが､ ちょっとしたテキストで､ フォントのウェイトを太字のheavyにします｡
‫だから､ 大胆に重みを持たせることができるのです｡
‫それなら､ ピザのトッピングということにしたい｡
‫そして次にチェックボックスが必要です｡
‫新しいチェックボックスを作成して､ CheckBox All Toppingsの略でKBという名前にし､
‫この3つの状態を持つようにします｡
‫本当です｡
‫つまり､ これから用意する他のチェックボックスとつながっているということです｡
‫わかりました｡
‫つまり､ 3つの状態を持つことができる､ ということですね｡
‫つまり､ 一方は真実で､ もう一方は偽りなのです｡
‫そして最後の1つは､ その中間にあるものです｡
‫だから､ 第三の状態を持つことができるのです｡
‫だから､ この3つの状態になっているわけです｡
‫本当です｡
‫そして､ checkedとuncheckedのメソッドを追加することができます｡
‫そこで､ 新しいイベントハンドラを作成するのですが､ 実はこれを手動で行いたいのです｡
‫そこで､ ここに独自のイベントハンドラを作成することにします｡
‫では､ そのようにしましょう｡
‫イベントハンドラの作り方はすでにご存じだと思いますので､ ご自身で試してみてください｡
‫どうぞ､ イベントハンドラを作成してみてください｡
‫よし､ じゃあこっちはプライベートボイドにしよう｡
‫CB All checked, changed, so this will just be checkbox, all checked, changed, was called and here I need the object
‫center and rooted event arguments.CBは､ チェックボックスがすべてチェックされ､ 変更されたことを意味します｡
‫Eと呼んでいます｡
‫そして､ この要素がチェックされたときに起こしたいマジックは以下の通りです｡
‫でも､ 今はそれがないんです｡
‫ということで､ CBのチェックが全て変更されたものを選択することにします｡
‫オブジェクトがチェックされるとこのメソッドが呼び出され､ チェックされないと何が起こるかというと､
‫実は私が呼び出したいのと同じメソッドになるのです｡
‫そのため､ 両方の方法で動作するようにメソッドを具体的に記述する必要があります｡
‫わかりました｡
‫だから､ ここでもオールチェックチェンジを採用する｡
‫そして､ テキストとしては､ add allのようなことを書いておけばよいのです｡
‫そして､ ここに行くと､ このピザのトッピングのラベルと､ チェックボックスがあるのがわかります｡
‫これで､ 大きなチェックボックスができました｡
‫そこで､ その下にスタックパネルを設け､ 他の3つのチェックボックスを配置したいと思います｡
‫新しいStackパネルを作成し､ この中にチェックボックスに名前を付けて､ CheckBox Salamiと呼ぶことにします｡
‫そして､ ここにcheckedプロパティを追加し､ 再び独自のイベントを作成します｡
‫そこで､ Private Void CBと私は呼んでいるのですが､ シングルのチェックが変わりました｡
‫これはオブジェクトで､ senderと呼ぶことにします｡
‫そして最後に､ ルート化したイベントの引数があり､ これをEと呼びます｡
‫ほぼ同じ内容です｡
‫ただ､ ここでは名前を変えています｡
‫だからこれは､ このトップが呼ばれれば呼ばれるはずだ｡
‫つまり､ この一番上のチェックボックスがクリックされ､ 他のチェックボックスがチェックされるたびに､ もう一つのチェックボックスが呼び出されるはずです｡
‫このスタックパネルにはさらに3つのチェックボックスがあり､ そのうちの1つがチェックされたら､ このメソッドを呼び出すことにします｡
‫そこで､ このシングルチェックを､ チェックされているときと､ チェックされていないときに変更したものと呼ぶことにします｡
‫だから
‫CBシングルチェック､ 変更しました｡
‫それで､ このチェックボックスができました｡
‫そして､ そこにちょっとしたテキストも加えたい｡
‫では､ そのチェックボックスにテキストを追加してみましょう｡ テキストブロックになります｡
‫だからテキストブロックと､ サラミのようなものを追加して､ なぜこんなことをするのか？
‫なぜこのような方法で､ 中にテキストブロックを作ったり､ そういうことをするのでしょうか｡
‫なぜ､ コンテンツを追加しなかったのか？
‫まあ､ それはここに美しいものを加えたいからなんですけどね｡
‫読まれている前景を太字にするものを追加したい｡
‫だからフォントのウェイトはボールドイコール太字であるべきだ｡
‫それから､ スパイシーとか言いたいので､ ご覧のようにサラミは今スパイシーです｡
‫これで､ テキストブロックはadd allのすぐ下に表示されるようになりました｡
‫なるほど｡
‫ですから､ 手動で調整し､ さらにスパイスを加えたい場合は､ 実際にオブジェクトの中にオブジェクトを作成したり､ コントロールの中にコントロールを作成したりする､
‫この方法を使用する必要があります｡
‫つまり､ チェックボックスコントロールの中にテキストブロックコントロールがあるということです｡
‫しかし､ 今度は他のチェックボックスを割とシンプルに作ってみます｡
‫新しいチェックボックスはcheckbox mush roomsという名前になり､ 実際にチェックされるようになるわけです｡
‫あとはコピーすればいい｡
‫だから､ これを確認したり､ コピーしたりするんです｡
‫そして､ 今度はテキストも必要で､ マッシュルームと呼ぶことにします｡
‫この行をコピーして､ ここにペーストすると､ 別の名前になります｡
‫モッツァレラチーズを追加｡
‫モッツァレラチーズと呼ぶのもいいかもしれませんね｡
‫モッツァレラ
‫わかりました｡
‫もちろん､ 本文もモッツァレラチーズに変更すべきです｡
‫そして今､ 私が気に入らないのは､ まったくこれがそれらをすべて追加することになるとは理解できないまま､
‫4つすべてがただ積み重なるという事実です｡
‫なぜなら､ ここに単純に少し余白を作るだけで､ すでに見え方が大きく変わってくるからです｡
‫ですから､ 5ピクセルとか10ピクセルとか､ ご覧のように余白があるわけです｡
‫このadd allまで少し距離があり､ 今はすべてadd allのチェックボックスに属しているように見えます｡
‫そして､ それはとてもクールなことです｡
‫それこそ､ 私が欲しかったものです｡
‫わかりました｡
‫これで､ XAMLファイルの設定は完了です｡
‫後ろのコードに入り､ これらのメソッドを実装しましょう｡ なぜなら､ メソッドを割り当てたり宣言したりしましたが､
‫まだ何も起こっていません｡
‫つまり､ 先に進んで牛を追加したい場合､ 新しいValは､ CB all toppings dot
‫is checked is trueの結果になります｡
‫ですから､ もしそれが本当なら､ もしここのステートメントが本当なら､ 新しい値が真になるのです｡
‫そうでなければ､ 偽物になる｡
‫さて､ 私が設定したいのは､ 私のサラシにチェックが入っていることです｡
‫それを新しいvol.に設定したい｡
‫マッシュルームやモッツァレラチーズも同様です｡
‫だから､ チェックされるのです｡
‫新巻になる予定ですが､ CB CB キノコはこの新巻をチェックしています｡
‫では､ なぜ新しい壁､ 新しい壁というものが必要なのでしょうか｡
‫さて､ new volは､ このall toppingsがチェックされている場合､ 単純にtrueに設定し､ falseに設定します｡
‫ですから､ もし誰かがこのすべてのトッピングを押して､ ここにあるものをすべて押したとしたら､ それらはすべてアクティブになるか､ すべて非アクティブになるかのどちらかになるはずです｡
‫それが､ この井戸端会議､ ここのアプローチで作るものなのです｡
‫さて､ 次はシングルチェックを変更したものです｡
‫そして､ ここではES checkedをNULLに設定したいと思います｡ なぜなら､ これらのいずれかにチェックを入れると､ アクティブか非アクティブかのどちらかになるからです｡
‫だから､ すべてのトッピングは通常､ 無効化されているはずです｡
‫2つを除いた1つをチェックし､ 3つ目をアクティブにすれば､ すべてアクティブになるはずです｡
‫ここでは､ cb salamiがtrueであるかどうか､ KB mozzarellaがtrueであるかどうかをチェックするだけです｡
‫Is checked is true.
‫そして最後に､ もしCVキノコがこのチェックしたものが真であれば｡
‫さて､ もちろん､ もう一つ周囲のブラケットを用意する必要がありますが､ これで､ この中で好きなことができるようになります｡
‫そして､ CBオールトッピングはチェック済みと言うことです｡
‫本当であるべきだ｡
‫ですから､ マッシュルーム・モッツァレラなど､ 全部にチェックが入っていれば､ あ､ トッピングも全部にチェックが入っているはずです｡
‫そして､ そのすべてがfalseであった場合､ それを解除する必要があります｡
‫これをコピーして､ 「真」を「偽」に置き換えてみましょう｡
‫そのため､ いずれの場合もすべて活性化されるか､ すべて非活性化されるかのどちらかです｡
‫チェックボックスのall toppingsを正しく設定したいのですが｡
‫わかりました｡
‫だから､ 今､ 私たちは全くであることをこれと実行することができます｡
‫クリックすると､ すべて起動するんです｡
‫そして､ もう一度クリックすると､ これが先ほどのトライの状態です｡
‫それで､ これは私たちのどこにあるのですか？
‫チェックボックスは？
‫3つの状態です｡
‫ああ､ あったあった｡
‫じゃあ､ 辛子明太子を解除したら｡
‫さて､ 全部解除すると､ ご覧の通り､ 解除モードになりますね｡
‫少し足すと､ 全部足して3状態､ 3状態になります｡
‫かなりね｡
‫わかりました｡
‫だから､ 見ての通り､ とてもシンプルです｡
‫チェックボックスの使い方はこうです｡
‫ちなみに､ ここで私がやったように､ 全部同じ方法でやる必要はないんですよ｡
‫どれも非常にユニークなメソッドができたのではないでしょうか｡
‫ユーザーに何かを知らせるメッセージボックスを作ることができます｡
‫ええ､ お願いします｡
‫そうですね｡
‫このチェックボックスにも忘れずにチェックを入れるか､ 「このチェックボックスをチェックしてくれてありがとう｡
‫なるほど､ 素晴らしい｡
‫さて､ 次回のビデオでは､ 次のトピックに進みます｡
‫では､ 現地でお会いしましょう｡