https://github.com/takker99/wpf_training
WPF+Prism+ReactiveProperty自習用repository
https://github.com/takker99/wpf_training
csharp dotnet-core dotnetcore learning prism reactiveproperty wpf
Last synced: 2 months ago
JSON representation
WPF+Prism+ReactiveProperty自習用repository
- Host: GitHub
- URL: https://github.com/takker99/wpf_training
- Owner: takker99
- Created: 2020-04-01T04:31:58.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-04-26T04:33:16.000Z (about 6 years ago)
- Last Synced: 2025-01-17T12:16:40.067Z (over 1 year ago)
- Topics: csharp, dotnet-core, dotnetcore, learning, prism, reactiveproperty, wpf
- Language: C#
- Homepage:
- Size: 302 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# wpf_training
WPF applicationの自習用repository
色んなサイトのサンプルアプリを通じて、WPF applicationの作り方を学んでいます。
## Contents
>:construction:工事中
### sample1
[WPF Prism 入門エントリ](https://elf-mission.net/wpf-prism-index/)をもとに作っているprogram
解説されているプログラムとは、project設定の違いと使用している.Net platformの違いを除いてほぼ同じプログラムになっています。
### sample2
[【改訂版】PrismとReactivePropertyで簡単MVVM!](https://qiita.com/hiki_neet_p/items/e04b5ac692aa18df0968)をもとに作ったprogram
相違点は以下の通り:
- Modelの実装なし
- リンク先のとは違って、入力値もmodelで保持し、DI containerを通じてviewmodelに渡そうとした。しかしviewmodelには全く反映されなかった。
- おそらくDI containerの使い方と、model<-->viewmodel間の通信方法をまだ理解できていないのが原因だと思う。
- 別なsample programで通信方法を習得して、できるようになったらこのprogramにも反映させてみる。
- IdialogServiceを用いたdialogを使用
- 実装は[WPF Prism episode: 16 ~ Prism7.2、ダイアログは IDialogService でって言ったよね! ~](https://elf-mission.net/programming/wpf/episode16/)をほぼ踏襲。
### sample3
[WPF アプリを MVVM で作る](https://qiita.com/seka/items/50d253c824e8914f937e)をもとに作成したprogram
元ネタはLibraryを一切使わずに作成していた。その上modelの捉え方がなんか変に感じた(control=modelとしてしまっている?)。
Prism+ReactivePropertyで実装しなおせばかなり簡単になりそうだったので、それで作り直してみた。
**結果:**
たしかに簡単に作成することができた。ついでに非同期I/Oを使ってみた。またfont sizeを変えられるようにもした。
ただModelの設計がうまく行かなかった (RegisterTypeでinterfaceと一緒に登録したかったが、うまく動かなかった)。[こちらのサイト](https://elf-mission.net/wpf-prism-index/)で一通り学習してから、modelを作り直してみることにする。
### sample4
[Nine Works asyncとIProgressを使ってプログレスバーを操作する](http://nineworks2.blog.fc2.com/blog-entry-4.html)をもとに作成したprogram
Livetを使用していた。その部分だけをPrism+ReactivePropertyで書き換えた。
全部実装し終えたと思ったら、なぜかViewModelLocatorで実行時エラーが発生してしまった。そのあたりを重点的に、sample3のコードと突き合わせて間違いを探してみたが、全くわからなかった。仕方なく前のcommitまで巻き戻し、その後少しずつ実行とcommitを繰り返した。
その結果、原因がData BindingのValueのつけ忘れだということがわかった。こッッッんな初歩的なミスに気づかないとか……。まあよくあることだけど。
今後はちゃんと
1. 少し実装
2. **コードの実行**
3. commit
を繰り返すようにしよう。
### sample5
[WPF Prism episode: 16 ~ Prism7.2、ダイアログは IDialogService でって言ったよね! ~](https://elf-mission.net/programming/wpf/episode16/)を基に作成予定のprogram
Dialog windowを使ったsample program...なのだが、すぐにdialog windowを使う状況にはならなそうなので、
とりあえずsolutionだけ作り、実際の学習・codingは必要になってからにする。
### sample6
[WPF MVVM L@bo #5 ~ ようこそ Dapper 至上主義の DataAccess へ ~](https://elf-mission.net/programming/wpf/mvvm-labo/phase05/)を基に作成したprogram
元のsample programから必要なfileをコピーし、programの構造を把握しながら名前空間の修正とproject分割をおこなった。DDDを知らないので、programの構造を理解するのにかなり時間がかかった。今でもほとんど理解はしていないが、このprogramの設計の意図は把握できた。
元のsample programからアレンジした機能:
- console出力から、DataGridを用いた表示に変更
- DB接続設定ファイルをxmlからjsonに変更