LightSwitchでは通常のコンボボックスの代わりにオートコンプリートボックスというのを使うようだ。
この使い方を少し調べてみる。
まずは簡単なサンプルを作る。
新規にプロジェクトを作成して、デザイナー画面で「外部データソースにアタッチ」をクリックする。
サーバーに「.\sqlexpress」を選択し、データベースに「Northwind」を選択。
テーブル一覧から「Orders」と「Order_Details」を選択。
追加したテーブルをもとに画面を作成するためにデザイナー画面上部のツールバーから「画面」をクリック。
表示されたダイアログ画面で以下のように設定し「OK」ボタンをクリックする。
画面テンプレート:新規データ画面
画面名:CreadteNewOrder
画面データ:OrdersItem
含める追加データ:OrdersItem詳細、OrdersItem OrderDetails
以上でとりあえず準備は完了ということで、F5キーを押して実行てみよう。
こんな画面が表示されるはずだ。
ここからが本題だが、画面を見てみると先頭に「CustomerID」というのがある。
通常このようなIDは選択ボックスから名称で選択して入力するのが普通だ。
そこで、こいつを選択ボックスに変えてみよう。
これまでのVisualStudioのパターンであれば、コントロールをコンボボックスに変更してデータソースを定義し、ValueメンバーにIDを、Displayメンバーに名称を指定なんて作業が必要だったがLightSwitchの場合は以下のような作業になる。
- 「ソリューションエクスプローラー」で「NorthwindData」データソースを右クリックし「データソースの更新」を選択。
- 表示されたテーブル一覧から「Customers」を選択して「完了」ボタンをクリック。
- デザイナー画面に戻るので「プロパティ」ウインドウにて「概要プロパティ」に「CompanyName」を指定する。
ちなみに、「Orders」テーブルを見てみると「CustomerID」が消えて「Customer」テーブルへの参照である「CustomerItem」が追加されている。 - 「ソリューションエクスプローラー」にて画面名をダブルクリックしてデザイナーを表示。
- 「行のレイアウト left」を選択し、表示された「追加」ボタンをクリックし「Customers Item」をクリックする。
- 「Customers Item」が追加されるので任意の場所にドラッグして場所を決めた後、「プロパティ」ウインドウで「表示名」を「CustomerName」に変更する。
- F5キーで実行し「CustomerName」をドロップダウンすると「Customer」の一覧が表示される。
最初に書いたように、これは「オートコンプリートボックス」というコントロールになっていてキー入力に応じて候補を絞り込むことができる。
とりあえず、オートコンプリートボックスでの選択候補の追加は以上のような感じだ。
予め選択候補を絞り込んだりする方法は次回・・・。
0 件のコメント:
コメントを投稿