‫お帰りなさい｡
‫このビデオでは､ リストボックスを作成します｡
‫そして､ ここに小さなリストボックスがあり､ エントリーが表示されているのがわかると思います｡
‫バイエルン・ミュンヘンが3点､ レアル・マドリードが2点で､ 試合はほとんど終わってしまったわけです｡
‫つまり､ ここではまだ使っていない､ 複数の異なる要素を使用しているのです｡
‫そして､ 1つを選択して､ このボタンshow selectedをクリックすると､ 小さなメッセージボックスがポップアップして､ 選択したボックスについて教えてくれ､
‫さらにいくつかの情報を与えてくれますが､ 少なくともこの場合は､ この情報を与えてくれるだけです｡
‫もちろん､ ここにもう少し情報を追加して､ インターネットからデータを取得して常に更新し､
‫単純に現在の試合のスコアを表示するような小さなアプリケーションを構築することも可能です｡
‫わかりました｡
‫さっそくやってみましょう｡
‫そこで､ リストボックスと呼ぶことにして､ このための新しいプロジェクトを作成することにします｡
‫だから､ もうこの名前にしよう｡
‫そこで､ Cということにして､ ここでは主にXAMLを使うことにします｡
‫だから､ 全部引きずっちゃうんです｡
‫そして､ この井戸､ ここに私たちのイメージ､ あるいはここにまだ窓があるのです｡
‫しかし､ 今やりたいことは､ またグリッドを使いたいのですが､ もちろん複数行を使うつもりです｡
‫では､ 列の定義､ 行の定義､ そういったものを作っていきましょう｡
‫ちなみに､ 実際には2つのカラムしか必要ないので､ それほど複雑にはならないでしょう｡
‫だから､ 2種類のカラムしかないんです｡
‫複数行があるわけではないので､ 行の定義は必要ないでしょう｡
‫でも､ あなたにとって､ その方法を思い出すことができれば､ それはいつでも良いことです｡
‫そのため､ まずカラムの定義が必要で､ ここでカラムを定義することができます｡
‫そして､ 幅が星のカラムと､ 幅が仮に100のカラムの定義をしてきます｡
‫だから､ ボタン､ 2列目､ かなり欲しいです｡
‫ここで使いたいのは､ その点です｡
‫わかりました｡
‫ということで､ この2つのカラムです｡
‫右側には巨大なボタンがあり､ クリックするとマッチに関する詳細な情報を得ることができます｡
‫リストボックスを作成し､ list boxキーワードを使用して､ このリストボックスには名前を付けます｡
‫このリストボックスをマッチと呼び､ コンテンツを水平に揃えるつもりです｡
‫そこで､ 水平方向のコンテンツアライメントと､ リストボックスのコンテンツを引き延ばすようにストレッチしてみます｡
‫そしてこちらの､ このlbwの試合は､ ちなみに名前にすべきですね｡
‫だから､ Name is ll be matches.
‫よし､ 次は具体的なアイテムのテンプレートが欲しい｡
‫そのため､ リストボックスはアイテムテンプレートを持つことができます｡
‫そこで､ リストボックスのドットアイテムテンプレートを使ってみます｡
‫そして､ その中にデータテンプレートを持つことができます｡
‫新しいデータ・テンプレートを作成して､ ようやくテキスト・ブロックや情報を追加できるようになりました｡
‫ということで､ ご覧のようにまだ見ぬ構造になっていますが､ それはそれで全然構わないんです｡
‫その仕組みは､ すぐにおわかりいただけると思います｡
‫リストボックス､ アイテムテンプレート､ データテンプレートと続きます｡
‫そして､ この中にデータを表示することができます｡ ここでは､ グリッドを使用することにします｡
‫そこで､ 余白が2のグリッドを使用することにします｡
‫そして､ このグリッドには､ カラムの定義も必要です｡
‫そこで､ グリッドドットカラムの定義タグを新規に作成します｡
‫そして､ ここでは列の定義を行うか､ 列の定義を作成します｡
‫ついでに言うと､ ここでもシンプルに｡
‫そして､ 私が持ちたいのは単純に幅だけで､ 他のすべての列と同じスペースを取ることになります｡
‫そこで､ ここでは5つのコラムを用意することにします｡
‫1つはチームのもの､ 2つ目はスコアのものになる予定です｡
‫3枚目は再びスコアです｡
‫4番目はチームか2番目のチームです｡
‫そして､ 最後に進捗状況です｡
‫だから､ すでにゲームがどの程度進んでいるのか､ あるいは試合がどの程度進んでいるのかを知りたいのです｡
‫そして今度は､ 複数のテキストブロックを用意したい｡
‫1つは､ グリッドドットの列の位置を0にしたテキストブロックにし､ テキストをバインドするようにします｡
‫そこで､ このテキストをチーム1にバインドすることにします｡
‫さて､ チーム1とは何だろうと思われるかもしれません｡
‫さて､ このチーム1をコードの後ろに定義する必要があります｡
‫わかりました｡
‫これから行うのは､ 例題をこれ以上進める前に､ 後ろのコードに進み､
‫マッチを処理する新しいクラスを作成することです｡
‫これは非常にシンプルなクラス､ public class matchになります｡
‫そして､ このクラスはプロパティのみを含むので､ publicで､ 実際にここにプロパティを作成してみましょう｡
‫つまり､ これがより簡単な小道具になり､ スコア1､ そしてもう1つ､ スコア2､ それから文字列になる1が必要で､
‫これは2つの1､ そしてもう1つ､ これも文字列になり､ これはチーム2になる｡
‫そして今､ ついに整数でもあるものが完成したのです｡
‫だから､ 試合がどこまで進んでいるのか､ あるいは試合全体の何分間が経過しているのかを知りたいのです｡
‫以上が､ このマッチクラスに関する一般的な情報です｡
‫このクラスは素晴らしいもので､ 一般にオブジェクト指向プログラミングはここで素晴らしいものになるでしょう｡
‫なぜなら､ もう少し情報を追加したい場合は､ 単純にそれを調整できるからです｡
‫例えば､ フィールド上にいる選手を追加したい場合､ 選手の世話をする全く新しいプロパティを作成することができます｡
‫そこで､ match内で使用されるクラスを作成し､ そこにすべての異なるプレーヤー名などを格納しておくことができます｡
‫そのため､ 拡張性に優れ､ そのコードを簡単にメンテナンスすることができるのです｡
‫さて､ このマッチクラスができたので､ メインウィンドウでマッチのリストを作成したいと思います｡
‫そこで､ リストを作成して､ それをmatchと呼ぶことにします｡ 実際には､ Matchをリスト要素として使用することにします｡
‫そして､ それはmatchesと呼ばれるもので､ 新しいマッチのリストになる予定です｡
‫わかりました｡
‫これで､ match matchesのリストができ､ そのリストに要素を追加できるようになりました｡
‫そこで､ 新しい試合を追加し､ バイエルン・ミュンヘンの値で私のチーム1にすることにします｡
‫私はドイツのバイエルンの大ファンであり､ その後､ ドイツとそこにある最高のチームであること｡
‫国際的に見ても非常に優れている｡
‫今年こそはチャンピオンズリーグを制覇してほしい｡
‫まだまだ元気そうです｡
‫セビージャを倒したばかりだ｡
‫重度のファンには申し訳ない｡
‫それから､ スコア1を3とし､ スコア2を2とする｡
‫そして最後に完成度ですが､ これは85くらいに設定します｡
‫というわけで､ 試合はほぼ終了し､ バイエルンが1点差､ あるいは1点差で勝っている｡
‫だから､ だいたいそんな感じで新しいマッチを作ることができるんです｡
‫そしてご覧の通り､ コンストラクタを作る必要もなければ､ そのクラスにメソッドを作る必要もないのです｡
‫プロパティを持つ非常に基本的なクラスを作成し､ そのプロパティをここに代入すると､ すべてのプロパティを持つオブジェクトができあがります｡
‫それを使って､ リストに表示したり､ 実際に表示したりできるからです｡
‫リストボックスです｡
‫最初のテキストブロックは､ テーマ1とします｡
‫次に､ 2つ目のテキストブロックですが､ これはチーム1のスコアに接続する必要があります｡
‫だから､ スコア1になるんです｡
‫そして､ 次のテキストブロックは､ チーム2に関する情報であるべきです｡
‫ということで､ チーム2になります｡
‫そして､ チーム2の情報というのは､ チーム2の名前と､ 最後にスコア2だけです｡
‫そして最後に､ ゲームの進行状況を教えてくれる､ テキストブロックではないプログレスバーが欲しいです｡
‫そこで､ グリッドカラム4に設定するプログレスバーです｡
‫そして､ ここでも当然ながらカラムを変更する必要があります｡
‫1､ 2､ 3､ 4
‫そこで､ ここに5つのカラムを設定したわけです｡
‫そして今度は､ チーム1を0列目に､ チーム1のスコアを1列目に､ といった具合に設定します｡
‫そして､ このプログレスバーの最小値を0に､ 最大値を0にしたいと思います｡
‫また､ サッカーを知っている人なら､ 出身地やイギリス英語とアメリカ英語のどちらを使いたいかによって､
‫90分だったりサッカーだったりすることを知っているはずです｡
‫そこで､ バインドしたい値があって､ このテキストでそれを行いました｡ つまり､ 単純にテキストにバインドしたのです｡
‫なぜなら､ プログレスバーは単なるテキストではなく､ 実際には整数型の値が必要だからです｡
‫つまり､ ここでバインドするのは補完完了になるわけで､ これでテストができるはずです｡
‫だから､ 文句を言われても､ それはプログレスバーを閉じないからなんです｡
‫わかりました｡
‫しかし､ ご覧の通り､ ここには何もありません｡ なぜなら､ 私たちが使っている値は､ コードの中にあるからです｡
‫とまあ､ まだコンパイルはしていないのですが｡
‫このサンプルファイルのメインクラスのコードはチェックされません｡
‫そして､ 今度は実行できるかどうかを確認します｡
‫ところで､ もし実行するならば､ 一つ重要なことを付け加えなければなりません｡ それはラボマッチです｡
‫ドットアイテムソースは､ 当社のマッチと同等です｡
‫さて､ LWBマッチとは､ どのようなアイテムソースなのでしょうか？
‫さて､ すべてのマッチングを見ると､ それがリストボックスとなります｡
‫だから､ 私はこのリストボックスと呼んでいます｡ リストボックスのマッチングのために立ちます｡
‫このリストボックスは､ すべてのマッチを処理するか､ またはすべてのマッチを表示することになります｡
‫そんな思いが込められています｡
‫そうですね｡
‫そして､ データソースが必要です｡ そうでなければ､ 何のデータも表示されませんから｡
‫そして､ よし､ これを試合のデータソースにしよう､ となったわけです｡
‫とまあ､ マッチがデータソースになるはずなのですが｡
‫つまり､ 3対2のスコアでバイエルン・ミュンヘン対レアル・マドリードという1試合が表示されるはずです｡
‫そして､ バイエルン・ミュンヘン､ レアル・マドリード､ バイエルンが3ゴール､ レアルが2ゴールです｡
‫そして､ プログレスバーにはTime's almost upと表示され､ 試合終了が迫っていることがわかります｡
‫今すぐ
‫2チームの真ん中にスコアを表示させたかったので､ ここで順番を変更する必要があります｡
‫そして､ このように変えていく｡
‫もちろん､ 点数がちょうど隣り合うようにしたいので､ ここでも列を調整する必要があります｡
‫比較しやすいからです｡
‫もう一度実行してみると､ マイナスが3つ､ レアル・マドリードが2つで､ 実際にはもう少しうまく､
‫テキストを中央に配置すべきなのです｡
‫ここでできることは､ 実際にスコアを少しきれいにして､
‫それを整列させることです｡
‫スコアともにそうするつもりです｡
‫では､ もう一度実行してみましょう｡
‫今お見せしたように､ こうしてユーザーインターフェイスを調整し､ 変更を適用して､ 少し素敵なものにすることができます｡
‫さらに､ この数字を右側に､ この数字を左側に並べて､ 間にコロンのようなものを入力することも可能です｡
‫わかりました｡
‫それが最初の試合というわけだ｡
‫さて､ あなたには､ ちょっとしたチャレンジを｡
‫どうぞ､ 複数の異なるマッチングを追加してください｡
‫そして､ それはサッカーである必要はないのです｡
‫あなたは､ またはサッカーは､ プログレスバーは､ アップしている時間のようなものをする必要があり､
‫あなたは単に両側に自分のスコアと2つのチームを持っている何のマッチを入力することができます｡
‫だから､ それを追加していってください｡
‫わかりました｡
‫ぜひ試してみてください｡
‫そして､ ここでこの試合を作ったのだから､ かなりわかりやすいはずだ｡
‫そして､ それを何度もコピー＆ペーストして､ あとはチーム名と得点を調整するだけです｡
‫それで､ ここに用意したものがあったのですが､ やはり私はどちらかというとサッカーファンなので､ サッカーチームを追加することにします｡
‫国際1 PSGはパリ・サンジェルマンの略で､ バルサとの対戦になります｡ バルサは現在ページに対して負けていますが､
‫まだ時間があるので勝つことは可能です｡
‫ちょうど55分なんですね｡
‫そして､ Bvbはドルトムントというドイツで2番目に強いチームがあり､ 彼らは我々やローマと対戦します｡
‫そして､ もう一つのチーム､ マンチェスター・ユナイテッドがここにあります｡
‫彼らは銀河のかなり可能性が低いが､ それは彼らがお互いに対戦することが起こる可能性があり､ 私はちょうど私が入力したり､
‫ここでも別のチームについて考える必要がないように､ 最後のスコアを取り除くつもりです｡
‫だから､ この試合はそんなに長くないし､ あるいはそんなに時間が経過していない｡
‫そして､ ここではマンチェスター・ユナイテッドが1点､ ズラタン・イブラヒモビッチもLAギャラクシーで1点を決めている｡
‫ということで､ 35分とバルサです｡
‫まあ､ それでいいんじゃないかと思います｡
‫だから､ このままでもいいし､ 今度も走らせればいいんです｡
‫それから､ この小さなインターフェースで､ すべての異なるチームとそのスコア､ そしてそのチームの残り時間を見ることができます｡
‫もちろん､ 開始時間や終了時間など､ 思いつくままにいろいろな情報を追加することができます｡
‫かなりいいのは､ 全選手みたいなのがあるといいですね｡
‫つまり､ ここにラインアップを追加したい場合､ もちろんLine Upという新しいプロパティを作成することができます｡
‫これは単に文字列の長い配列､ あるいはすべての異なるプレーヤー名を含む文字列のリストになります｡
‫そして､ 誰かがそのうちの一つを押して､ 選択ボタンを押すと､ それを表示することができます｡
‫しかし､ まだ選択ボタンがないので､
‫これから追加していきます｡
‫そして､ それは非常に関連性の高いことです｡
‫もし､ あなたがそれを望むなら､ あるいは､ 実際にアプリケーションでそれを必要とする地点に来たなら､
‫本当に良いことだと思います｡
‫だから､ リストボックスの外に置くことにしています｡
‫ところで､ リストボックスですが､ ここにはカラムを設定していません｡
‫つまり､ 最初の要素は､ 割り当てなければ自動的にゼロゼロになるわけです｡
‫でも､ すぐに割り当てるつもりです｡
‫まず､ ボタンを追加するのですが｡
‫では､ 新しいボタンを作ってみましょう｡
‫これをGrid Column 1に設定し､ クリックイベントを追加してみましょう｡
‫そして､ 新しいイベントを作成します｡
‫新規イベントハンドラを作成すると､ ボタンのクリックメソッドが追加されるので､
‫これをshow selectedと呼ぶことにします｡
‫ボタンクリックというのは､ あまりいい名前ではないかもしれませんが､ まあ､ いいじゃないですか､ このボタンクリックを使えば｡
‫そこで､ このボタンをクリックするメソッドを用意しました｡
‫そうすると､ さらに情報が表示されるんです｡
‫そして､ 今のところ次のようなことをするだけです｡
‫選択されたマッチが空でないかをチェックするだけです｡
‫そのため､ lbeは選択された項目が等しくないか､ 空か､ またはNULLにマッチします｡
‫なぜなら､ もしそれがNULLなら何も起きて欲しくないからです｡
‫しかし､ NULLでない場合は､ メッセージボックスに何かを表示したいので､ Selected
‫Match is going to be plusのようなものを表示し､ この中に､ 異なるマッチをすべて表示することにします｡
‫だから
‫El Bがその選択した項目をmatchとしてマッチさせ､ そこからチームを持つようなものが必要です｡ 今はmatchの選択項目はmatchクラスではないので､
‫それをmatchとして使いたいのですが､ どうしたらいいでしょうか？
‫そしてそこに､ チーム1＋空白＋次の列を表示したい｡
‫だから､ ここにコピーしておくんです｡
‫次の行に入れる｡
‫そして､ ここではチームに見せたくありません｡
‫スコア1を表示したい｡
‫そして次の行で､ スコア2を表示させたい｡
‫そして最後に､ チーム2を紹介したいと思います｡
‫その後､ 空白のスペースは必要なくなり､ コロンや､ 実はこのようにセミコロンも使えるようになりました｡
‫というわけで､ メッセージボックスに何かを表示させる方法です｡
‫ちなみに今回は､ 私のチームをもう一度お見せします｡
‫つまり､ LWBは選択されたアイテムと一致していることがわかります｡
‫選択された項目はオブジェクトで､ それをマッチとして使用し､ そのチーム1､ チーム2､ スコアのプロパティにアクセスできるようにしたいのです｡
‫そうでなければ､ できないことです｡
‫だから､ そこを省いてしまうと､ チーム1というわけにはいかない｡
‫すぐにお見せします｡
‫例えば､ マッチドットセレクトアイテムのドットにすると､ これはオブジェクトなのでプロパティが表示されません｡
‫この選択項目は単なるオブジェクトであり､ 文字列と等しいメソッドしか利用できない｡
‫しかし､ 実際に必要なのは､ マッチのプロパティで､ 選択されたオブジェクトがマッチオブジェクトであることは分かっています｡
‫だから､ そのプロパティにアクセスできるのです｡
‫素晴らしい｡
‫それでは､ さっそくテストしてみましょう｡
‫この後､ このビデオは終了です｡
‫ということで､ フォローしていただけたら､ もう大丈夫です｡
‫そこで､ バルサを選択しました｡ バルサを選択すると､ ご覧のように､ PSG 3からバルサへのマッチを選択しました｡
‫これが現在のスコアなんですね｡
‫もちろん､ ここでさらに情報を追加することもできますし､ 新しいウィンドウを開いて､
‫2チームの試合のラインナップなど､ さまざまな情報を表示させることも可能です｡
‫さて､ かなり長いビデオでしたが､ かなりいろいろなことをやりましたね｡
‫リストボックスを使用しました｡
‫見たんですね｡
‫そして､ 再びグリッドを使用します｡
‫さて､ もうそれを使うために､ 今､ 私たちは見ています｡
‫しかし､ このクラスで興味深いのは､ この小さなマッチリストを作成するために使用したプロパティを含むクラスを作成したことです｡
‫また､ データバインディングも使用しており､ ここではメインウィンドウのクラスではなく､ クラス内のプロパティにバインドしています｡
‫ここにマッチしているので､ 簡単にアクセスできますし､ とてもクールです｡
‫オッケイです｡
‫だから､ この映像はいいと思う｡
‫次回作でお会いしましょう｡