1 名前:デフォルトの名無しさん mailto:sage [2009/06/19(金) 13:08:09 ] あたらしいGUI FW、WPFについて語るすれ。 .NET3.5 SP1 もリリースされて盛り上がってまいりますた。 Visual Studio 2008 ttp://www.microsoft.com/japan/msdn/vstudio/ Microsoft .NET Framework 3.5 Service Pack 1 ttp://www.microsoft.com/downloads/details.aspx?FamilyId=AB99342F-5D1A-413D-8319-81DA479AB0D7&displaylang=ja WPF Toolkit - March 2009 Release ttp://wpf.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=25047 関連スレ Microsoft Silverlight その4 pc12.2ch.net/test/read.cgi/tech/1244812356/ 過去スレ WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3 ttp://pc12.2ch.net/test/read.cgi/tech/1231506876/ WPF(XAML,XBAP,.NET3.5)GUIプログラミング ttp://pc11.2ch.net/test/read.cgi/tech/1211453941/ 【新GUI FW】WPF(XAML,AVALON,.NET3.0)【重い?】 ttp://pc11.2ch.net/test/read.cgi/tech/1162950198/
60 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 11:06:21 ] この辺が参考になるかな。 msdn.microsoft.com/ja-jp/magazine/dd419663.aspx 更新のない一方向の情報なら XmlDataProviderを使って直接バインドしてしまうことも出来る。
61 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 11:09:26 ] >>60 なかなか難しいな 頑張って解読してみる ありがと!
62 名前:57 mailto:sage [2009/07/12(日) 16:17:29 ] >>60 読んでみた Model-View-ViewModelでやると、 ViewModel同士の同期が非常に煩雑になる気がするんだがそうでもない? (>>60 のサンプルでも煩雑になってる気がする) 本屋に行ってWPFの本を探してみたが どれも簡単なコントロールやスタイルの組み方までしか書いてねぇ。
63 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 19:00:24 ] ここはexpression blendの使い方の質問してもおkな場所か?
64 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 20:09:07 ] いいえ
65 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 20:39:27 ] >>62 俺も綺麗なやり方が分からず悩みどころ。 あとVとVMの連携が必要な所も酷いことになる。 例えば、ボタンを押したらダイアログを表示、をやろうとしたら ダイアログに対応するVMを作るのと、ダイアログの表示処理は誰がやるんだろう? 選択肢を選んだら即時ダイアログを閉じる場合、VMへの値の反映をバインドでやるとすると ダイアログを閉じるのはどうやるんだろう? って感じで複雑な物を作ろうとするとV→VMが依存しまくり。 うまく行く設計方針とかないのかしら。
66 名前:57 mailto:sage [2009/07/12(日) 22:06:24 ] もうMVCで書いてしまおうか。 それともフレームワークのようなものを作れば MVVMでも多少ましになるのかな。
67 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 01:16:24 ] >>65 コマンドは使ってるんだよね? >例えば、ボタンを押したらダイアログを表示、をやろうとしたら >ダイアログに対応するVMを作るのと、ダイアログの表示処理は誰がやるんだろう? Vはコマンドを発行するだけ(VM側の実装を知らなくていい) コマンドを受け取って、ダイアログのV,VMを作って呼び出すのはVMの役目。 >選択肢を選んだら即時ダイアログを閉じる場合、VMへの値の反映をバインドでやるとすると >ダイアログを閉じるのはどうやるんだろう? その程度のやつならVで閉じちゃえば? 妥当性検証をパスして、OKボタン押すまでソースへの通知を遅らせたい(CANCEL時に無かった事にしたい)時とかはVMがないと見通し悪くなる。
68 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 01:25:55 ] >>67 前者は、コマンドは使っているけれど > ダイアログのV,VMを作って呼び出すのはVMの役目。 これって不味いのでは? 「V→VMの依存関係を一方向にすれば、テスト楽だよ」ってのがMVVMの味噌な気が。 VMがVを作ると、VM単体で単体テストしにくくなって不味いかと。 後者は、自分が選んだのもその方法(コードビハインドで全部処理)だけど、 コマンドを使うところと使わない所が出来るってのがちょっと嫌な感じ。 自分のMVVMのやり方じゃ7割ぐらいまでは綺麗に適応できるけど 3割ぐらいは外れるか、アドホックに汚いやり方で誤魔化しちゃってます。
69 名前:デフォルトの名無しさん [2009/07/13(月) 14:15:50 ] MVVM的な作り方では、下記のソフトもいい勉強になりますよ。(知ってたらスマンです) www.codeplex.com/miniuml
70 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 16:35:36 ] >>60 おお、いい記事を紹介してくれた。ありがとう。
71 名前:57 mailto:sage [2009/07/13(月) 19:42:17 ] >>69 このUIかっけぇ そしてコード勉強になる ありがと
72 名前:デフォルトの名無しさん mailto:sage [2009/07/14(火) 00:06:15 ] >>69 トン、俺も読んでみる
73 名前:デフォルトの名無しさん [2009/07/17(金) 20:17:07 ] MSに点在するSilverlightのサイトを見ていたら WPFと同じような使用例ばかり出てきて、WPFはどうしたいのかわからなくなる
74 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 20:52:48 ] どっちも同じように書けるってこった
75 名前:デフォルトの名無しさん mailto:sage [2009/07/17(金) 20:56:16 ] >>73 ホストアプリを何にするかの違いだけ。
76 名前:デフォルトの名無しさん [2009/07/19(日) 00:06:09 ] RadioButtonのバインドって微妙で使いにくいですね。 ListBoxとかで作ったほうがすっきりするかしら・・・
77 名前:デフォルトの名無しさん mailto:sage [2009/07/19(日) 00:33:11 ] どうするんのがスマートなんだろうね。 自分の場合、Enumと合わせるなら他の人も作っている EnumBooleanConverterをパクって使っている。これはかなり楽。 Enum以外のデータ、他の特に可変個数のデータ数の選択の場合は、 自作ViewModelクラス(選択肢の表示内容や対応付けられたデータを保持し 選択されたらイベントを飛ばす)を使っている。
78 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 08:26:50 ] てすつ
79 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 15:33:39 ] SilverLight3になってから、サンドボックス内とはいえローカルで実行できるとか・・・。 キャッシュとしてローカルのディスクにデータとか書き込めるのかね・・・。
80 名前:デフォルトの名無しさん mailto:sage [2009/07/21(火) 19:26:59 ] >79 2番目は IsolatedStorage でSL2の段階で出来る ローカル実行は俺も知りたい
81 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 13:08:02 ] WPFToolKit入れて、VSMを使いたいのだが、GotoStateでNull例外。 Silverlightと違ってGotoStateを明示的に呼び出す必要がないとか。 なのでCommonStatesグループを作って、Pressedのステートを作ってみたが無反応。 どうやったら使えるかな?