業務系システム開発勉強会「WPF 入門 #4」に参加しました

By | Date : 2016/05/24 | 112 views

カテゴリ : IT勉強会 タグ: , ,

Nia-TN-SDF-A2

こんにちはー!ニアです。

私は先週の日曜日に「業務系システム開発勉強会「WPF 入門 #4」」に参加しました。

 

1. 前回から作っていたアプリがほぼできました

私は前回の勉強会から作っていた日報メーカーアプリ開発の続きをし、勉強会終盤あたりにほぼ完成することができました。( ⇒ GitHub

※画像に入力されている情報は架空のものです。

 

まずこちらは、情報アシスタントの情報を入力する画面です。日付や担当教室、勤務時間などを入力します。

drmita01

こちらは、業務時間とその内容を入力する画面です。日報では大学の時間割ごとに業務内容を入力する必要があるので、アプリではリストボックスを使って時間割ごとに入力項目を追加するスタイルにしました。リストボックスのItemsSourceにはObservableCollectionクラスとデータバインディングをし、リストボックスの項目内はItemTemplateを使ってレイアウトを構成しています。

drmita02

こちらは、利用者からの質問とその解決方法を入力する画面です。追加ボタンを押して追加された項目の質問時刻欄には、DateTime.Nowプロパティでその時の時刻を自動的に入力されるので、質問が来た時にサポートチケットを発行するような感覚で、項目を追加することができます。

drmita03

必要事項を入力したら、日報データを生成するボタンを押すだけで、日報データのタイトルと本文を簡単に作成できます。項目の数え上げやインデックス番号の付加、インデントの調整は全てアプリが自動的に行うので、ユーザーは日報の内容を入力するだけでOK。質問件数などの数え間違いや必要項目の入力し忘れを未然に防ぎます。

drmita04

 

 

2. 今回のお題はLINQ

今回のお題はLINQということで、勉強会の最後にちょっとLTをして、そのアプリで使用しているLINQについて話しました。

 

2.1. OrderByメソッドとThenByメソッド

3つのLINQの内、LTでは省略していた「OrderByメソッドとThenByメソッド」について補足します。

OrderByメソッドは、指定したキーに従ってコレクションの各要素を並び替えたシーケンス(IOrderedEnumerable<T>型)を返します。

ThenByメソッドは、IOrderedEnumerable<T>型のシーケンスに対して使用し、OrderByメソッドで指定したキーの要素が等しい要素同士では、指定した別のキーに従ってさらに並び替えたシーケンスを返します。

 

以下はOrderByメソッドとThenByメソッドのサンプルプログラムです。

28行目では、果物(Fruit型)のリストに対して、OrderByメソッドで値段(Price)の安い順にソートし、ThenByメソッドで値段が等しい要素同士では名前(Name)の昇順にソートしています。

上のコードの実行結果がこちらです。

なお、ThenByメソッドの戻り値はIOrderedEnumerable<T>型なので、そこからThenByメソッドを実行してさらに並び替えをすることができます。

もちろん、ThenByメソッドにも降順ソート版のThenByDecendingメソッドもあります。OrderByDecendingメソッドと一緒に使用することで、例えば試合でのランキング集計に応用できます。

 

3. 今回の懇親会は台湾料理!

今回も懇親会に参加し、台湾料理を頂きました。

私はハチノスの珍味が一番おいしかったです(かなり辛かったですが(笑))。そう言えば、地元の中華料理店にもハチノスを使った料理があった気が・・・、今度食べてみよう。

 

4. おわりに

今回も楽しくC#+XAMLの勉強をすることができました。主催者の皆様、会場を用意してくださった皆様ありがとうございました。

 

それでは、See you next!

 

この記事をシェアする
Chronoir.netのRSSフィードを購読する

About : ニア(Nia)

紅茶とコーヒーが好きな湘南生まれのプログラマー/ITエンジニアです。主にC#/C++/PHPを使ってプログラミングをしています。趣味は写真撮影と音ゲーです。時々イラストを描いています。プログラミングを勉強している方々と仲良くなりたいです! 興味を持っている分野:UWP/Xamarin/Android Wear/WPF/Windows/Visual Studio/WordPress/KUSANAGI/nginx

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*