WPF applicationの自習用repository
色んなサイトのサンプルアプリを通じて、WPF applicationの作り方を学んでいます。
🚧工事中
WPF Prism 入門エントリをもとに作っているprogram
解説されているプログラムとは、project設定の違いと使用している.Net platformの違いを除いてほぼ同じプログラムになっています。
【改訂版】PrismとReactivePropertyで簡単MVVM!をもとに作ったprogram
相違点は以下の通り:
- Modelの実装なし
- リンク先のとは違って、入力値もmodelで保持し、DI containerを通じてviewmodelに渡そうとした。しかしviewmodelには全く反映されなかった。
- おそらくDI containerの使い方と、model<-->viewmodel間の通信方法をまだ理解できていないのが原因だと思う。
- 別なsample programで通信方法を習得して、できるようになったらこのprogramにも反映させてみる。
- IdialogServiceを用いたdialogを使用
WPF アプリを MVVM で作るをもとに作成したprogram
元ネタはLibraryを一切使わずに作成していた。その上modelの捉え方がなんか変に感じた(control=modelとしてしまっている?)。 Prism+ReactivePropertyで実装しなおせばかなり簡単になりそうだったので、それで作り直してみた。
結果: たしかに簡単に作成することができた。ついでに非同期I/Oを使ってみた。またfont sizeを変えられるようにもした。
ただModelの設計がうまく行かなかった (RegisterTypeでinterfaceと一緒に登録したかったが、うまく動かなかった)。こちらのサイトで一通り学習してから、modelを作り直してみることにする。
Nine Works asyncとIProgressを使ってプログレスバーを操作するをもとに作成したprogram
Livetを使用していた。その部分だけをPrism+ReactivePropertyで書き換えた。
全部実装し終えたと思ったら、なぜかViewModelLocatorで実行時エラーが発生してしまった。そのあたりを重点的に、sample3のコードと突き合わせて間違いを探してみたが、全くわからなかった。仕方なく前のcommitまで巻き戻し、その後少しずつ実行とcommitを繰り返した。
その結果、原因がData BindingのValueのつけ忘れだということがわかった。こッッッんな初歩的なミスに気づかないとか……。まあよくあることだけど。
今後はちゃんと
- 少し実装
- コードの実行
- commit を繰り返すようにしよう。
WPF Prism episode: 16 ~ Prism7.2、ダイアログは IDialogService でって言ったよね! ~を基に作成予定のprogram
Dialog windowを使ったsample program...なのだが、すぐにdialog windowを使う状況にはならなそうなので、 とりあえずsolutionだけ作り、実際の学習・codingは必要になってからにする。
WPF MVVM L@bo #5 ~ ようこそ Dapper 至上主義の DataAccess へ ~を基に作成したprogram
元のsample programから必要なfileをコピーし、programの構造を把握しながら名前空間の修正とproject分割をおこなった。DDDを知らないので、programの構造を理解するのにかなり時間がかかった。今でもほとんど理解はしていないが、このprogramの設計の意図は把握できた。
元のsample programからアレンジした機能:
- console出力から、DataGridを用いた表示に変更
- DB接続設定ファイルをxmlからjsonに変更