1read 100read
2012年4月プログラム18: WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part13 (209) TOP カテ一覧 スレ一覧 2ch元 削除依頼
◆◇◆dbMAGICってどうよ?◆◇◆ (799)
Google NaCl プログラミング 2mol (246)
IEコンポーネントを使い倒すスレ Ver.2 (690)
推薦図書/必読書のためのスレッド 67 (473)
【激突】関数型言語 VS オブジェクト指向言語2 (664)
【日本携帯】Mascot Capsule/Micro3D【標準】 (156)

WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part13


1 :12/04/13 〜 最終レス :12/05/05
ユーザーインターフェースシステム、Windows Presentation Frameworkについて語るスレ。
Visual Studio 2010
http://www.microsoft.com/japan/msdn/vstudio/
Microsoft .NET Framework 4 (Web インストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=9CFB2D51-5FF4-4491-B0E5-B386F32C0992&displaylang=ja
Microsoft .NET Framework 4 (スタンドアロンインストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=0A391ABD-25C1-4FC0-919F-B21F31AB88B7&displaylang=ja
前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part12
http://toro.2ch.net/test/read.cgi/tech/1324366825/
関連スレ
Microsoft Silverlight その9
http://toro.2ch.net/test/read.cgi/tech/1321150267/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/

2 :
過去スレ
Part11 http://toro.2ch.net/test/read.cgi/tech/1320589318/
Part10 http://hibari.2ch.net/test/read.cgi/tech/1315648327/
Part9 http://hibari.2ch.net/test/read.cgi/tech/1301122694/
Part8 http://hibari.2ch.net/test/read.cgi/tech/1291554513/
Part7 http://hibari.2ch.net/test/read.cgi/tech/1282479113/
Part6 http://hibari.2ch.net/test/read.cgi/tech/1274423236/
Part5 http://pc12.2ch.net/test/read.cgi/tech/1261879110/
Part4 http://pc12.2ch.net/test/read.cgi/tech/1245384489/
Part3 http://pc12.2ch.net/test/read.cgi/tech/1231506876/
Part2 http://pc11.2ch.net/test/read.cgi/tech/1211453941/
Part1 http://pc11.2ch.net/test/read.cgi/tech/1162950198/

3 :
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=0663F616-C55C-4E19-A2E6-2AF6107D5689
なんで4.0.3のアップデータって4.0本体より大きいんだろう

4 :
WPFは死にました

5 :
4.0.3で重要な修正ある?

6 :
ガベージコレクションの変更とか。

7 :
ARM版Windows8の名前Windows RTになるみたいだがややこしいな

8 :
コントロールのTemplateって部分的に書き換えるとかできないの・・?
できないなら、デフォ設定を引っ張ってくる記述ってないのかな。トリガーとか。

9 :
デザインモードでよくわからんエラーが出続けてて格闘してたが
プロジェクトクリーンで直った
.g.cs達の影響うけすぎ

10 :
>>8
「リソースに書きだす」だかなんだかいうのがあるだろ
同じコントロールでもvsとblendで書きだす内容が違うけどな

11 :
WindowのLoadedイベントにCommandをバインドしたくても
コード上でDataContext設定したんじゃイベント発生に間に合わないのな

12 :
イベントにはICommand型はバインドできんやろ?

13 :
MVVMはもう詰まったら逃げろが正解な気がしてきたぜ。頑張っても自己満足だしな。
そのケースなら、もうデリゲートとかで渡しちゃえよ的な・・

14 :
WindowsRTのデスクトップアプリってWPF使えないのかな

15 :
どっかで誰かが言ってたみたいに、ビヘイビアもメッセージもコマンドも使わないで
常にイベントハンドラからVMのメソッド呼ぶことにしたらほとんど悩むことがなくなった
もうこれでいいわ

16 :
SliderのValueをとある自前クラスのint型プロパティにBinding(OneWayToSource)しているんだけど、
スライダを動かした際にプロパティのsetに加えてgetも呼ばれてるのは仕様・・・?
実装の都合でgetのコストがちょっと大きいので、setだけにしたいんだけど

17 :
コマンドもメッセンジャーもインフラ構築しないと面倒くさすぎるからな
色々な機能をふやすと労力をMVVMじゃなくて機能面に注ぎたくなる

18 :
書いてないことは仕様じゃないし充てにしてもいけない

19 :
趣味のプログラムでも
ユニットテストやらなきゃいけない時代なんじゃないかなぁ
ビハインドで書くとまずテストできんでしょ
まあ、MVVMで書くのも、テストしないのも、同じくらいコスト高いけど

20 :
DataGridでe.Row.Getindex()をバインドさせて行番号を自動で振ってる場合に、
コレクションの追加、削除等をすると、ObservableCollection は変更があった行しか
CollectionChangedを発生させないからか、既存行の行番号が再付番されないのですが、
普通はどのようにしていますか?
ObservableCollection を継承してCollectionChangedを公開・・?
それかコレクション側に行番号を持つにしても、付番しなおさなきゃならないですし・・

21 :
OnCollectionChangedを公開する方法で上手くいきました。

22 :
>>19
ビヘイビアで書かれた複雑なスクリプトをデバッグするよりはコードビハインドの方がマシ

23 :
つきつめるとViewModelもいらんくね?ってなるけど。
ViewModelのコレクションはまじで煩わしい。

24 :
アプリの機能が増えてくると機能単位のVM作っておいたら割と便利だた
画面単位でVM作るのは本気でいらんと思ったわ

25 :
バインドだけ使えればいい

26 :
バインドが楽なところはバインドでそうじゃないところはコードビハインドが妥当
VM作る作らないは開発規模次第
Blendがある環境ならまだしもフルスクラッチなメッセンジャーやビヘイビアで作られたやつとか触りたくないわ

27 :
できるやつはそれでいいけど、ビヘイビアとかを完全にフリーダム?wにすると
カオスになりそう。デフォアクションが足らなすぎるんだよなぁ。コンバータとかも。
つか、よく読んでなかった。使わんでいいだろって話か。多分。

28 :
いろんな状態持ってたり複雑なロジックで導出される値があったりするならVM必要だけど
エンティティのプロパティをテキストボックスで編集できて
保存ボタンで保存できればいいだけの画面にVMなんかいらんわな

29 :
大切なのは一貫性だと思うが。
机にきれいに収まっていてもどこに何があるのか分からない部屋より、
乱雑に置かれているけどどこに何があるかすぐに分かる部屋のほうが良い。

30 :
俺は事務の仕事をしているのだが、
C#とWPFを使って、業務を高速化させているw
うちの会社のシステムはWebアプリ化しているから
自分で作ったアプリで、WebBrowser上で表示させて
HTMLDOMで情報抽出、自前でデータ管理しているから
仕事が速い。
仕事が出来る奴と思われてWPF様々ですよ。
周りの奴らは、俺がそんな自作ツールを使っている事は当然気づいていない。

31 :
有名なIT会社が作ったWebアプリで、
重要な項目には必ず、id属性がふられているので、GetElementByIdで簡単に取得。
データ加工したものは、Sqliteを使って保存している。
だから情報検索も早い。
仕事しながらツールを作るのが大変だったけど、作った後は激楽になった。
デバッグ環境が会社にしか当然ないからw 同僚に隠れてVS2010起動しながら作るのが一番大変だったw
C#たん、様様。

32 :
>>29
MVVMってビュー単位で閉じてるのが基本で、
VM持ってるかどうかは外から意識することじゃなくてビューごとの実装の詳細みたいなもんだろ?
そんなに大したことじゃないと思うが

33 :
>>31
よく隠れて作ったな。
そのうち使っているのがばれて、
皆が使い出して改造を頼まれてるようになり大変になったりてな・・・。

34 :
スクレイピングはいいよな
俺はPowerShellでやってるけど

35 :
>>30
仕事が速いだけじゃなくて正当に評価されると良いのにな。

36 :
調子こいてバレてシステム部門に異動で泣きを見るな・・・
趣味レベルだと面白いんだ。責任はないし逃げれるからな。

37 :
WPFの場合は、Forms.WebBrowserを使わないとdom操作できないよな。

38 :
dynamic使う

39 :
XAML系ってXAMLで書いたら静的になっちゃうよね?
なんつーかスタイルとかモーションとか。
その辺動的にゴニョゴニョ出来る仕組みってあるの?

40 :
トリガーはどうよ

41 :
なにを意図してるかよくわからんが・・・
cssのa:hoverみたいなのなら>>40とかテンプレート弄るなりできるし、
外部にリソースディクショナリ出しちゃえばcssみたいにスタイルは外に追いやれるが。

42 :
XAMLを使わないプログラムはやらないかなあ。
GWTとかMacでIB使わない開発してるからそっちのほうが
違和感がないんだが

43 :
>>40,41
ユーザーの設定とかでトランジションや何かした時のアニメーション動作を変えたり、全体的に文字を大きくするとかを動的に変えることが出来るのかなーと。
UIの階層構造にしても出来れば動的に変えたい。
いや、XAMLまだ触ったばかりでよく知らないので、こうすれば出来る的なのがあればぜひ教えてほしい・・・

44 :
>>43
文字サイズなら、包含継承っていう仕組みで親要素から子要素にプロパティが継承される
はずだから、最上位のGridとかだけ設定してやりゃ子は全部変わるはず。
そこのfontsizeにバインドなりさせりゃ動的に変更できる。(と思う。やったことない)
階層構造を動的にか。やったことないが、
0からコントロールをコードで追加していくってのはできるよな。
現実的には、ある程度部品纏めてユーザーコントロール作るとか。

45 :
普通にコードビハインド書けばいい
アニメーションでできることならできるだけXAMLでストーリーボードとして定義して
コードから開始させる

46 :
>>44.45
前アニメーションとかは使ってなかったんだけど、UIについては自分でゴリゴリ書いて動的にコントロール追加とかしてた。
いいたいのはXAMLで書くと不必要に静的にならんかということ。
うまく混在させればいいんだろうけれど、そもそもXAMLで書いたほうが幸せになるのか、動的な構造変化も出来るような独自のDSL作っちゃったほうが、幸せになるんじゃないかとか。
そもそものINotifyPropertyChangedとかの実装が醜すぎて嫌いというのがある。
XAMLでBinding楽に書けるよレベルのは自前DSL書いて楽にできるだろうし。
まぁそうするとBlend使えなくなったりとかもあるので痛し痒しなんだが・・・(;´Д`)

47 :
>>46
ttp://www.forest.impress.co.jp/docs/review/20120419_527336.html

48 :
WinRTにデスクトップアプリという概念はない

49 :
XAMLを使わないと簡単にコントロールをラップするクラスが作れて本当に便利だ。

50 :
依存関係プロパティの定義とか、いちいち定義がダルいのをどうにかして欲しいな。
普通のプロパティに属性付けたら勝手になる感じでいいだろと。
コールバック?シラネ!

51 :
>>50
スニペット使うといいよ。
wpfdp とか wpfdpa とか idataerrinfo とかetc。

52 :
ここは自ら好んで苦難の道を行かんとする猛者多いな。

53 :
>>47
その仕組でILいじるのはありっちゃありだが、テストとかじゃなくてプロダクトコードにそれでやるのはちと怖い(;´Д`)

54 :
WP7などでバインディングがもっさりの現況とか言われてたことがあったけど、実際のところどうなんでしょう。
たしかに無駄な処理してそうな気がしますが・・・

55 :
それってバインディングじゃなくてレイアウトの再計算の方がボトルネックになってるんじゃないか

56 :
formsみたいにcanvas1枚の上にコントロール全部のぺって貼り付けたら早いんじゃね

57 :
Livet使ってるけど、参考になるサンプルが少ない。
難しいことはわからなくても大丈夫なように作ったんだろうに、
下手な解説資料よりサンプル増やしたほうがいいってことに気付け

58 :
携帯の画面ごときにレイアウトのコストなんてほとんどかからんやろ
デスクトップとは比べ物にならないくらい単純だぞ

59 :
久しぶりにAccess触ったらSQLにコントロール名入れたりとかすげえなw
そりゃこういうのに囲い込まれた連中がMVVMとかあんまりにもギャップがありすぎるわな

60 :
VBA7.0なめるなよ

61 :
>>57
最近はフォーラムでも幾つも使用例上がってんだから
サンプルなんて探せばゴロゴロあんだろ
それでも判んないならやりたいこと言えばいい

62 :
マイクロソフトは開発言語がC++とMFCだったころは強制的にフレームワークで
プログラミングをがんじがらめにしておいて、
NETになったら、すべてユーザー任せにした。これに対応できないユーザーがほとんどだった。
WPFになっても同じ失敗を路襲している。
WindowsFormsのリソースをどのようにしたら、WPFのアプリケーションに再利用できるのかぐらい
サンプルコードで提供できないのか?
これではプログラムのロジックの継承も断絶する。

63 :
おっさんは切り捨てる方針に決まりました
現在25歳以上の人はご愁傷様

64 :
>>62
MFCもそうだけどどうせ現場では出来る(興味のある)やつが
ひな形を作ってコピペする作業が始まるよ

65 :
偉そうに記事見つけたからLivetいれてみたけど
サンプルのUIが糞すぎてワロタw
疎結合だMVVMだと偉そうに語ってても
こんな糞UIしか作れないんじゃ意味ないな

66 :
Messenger.Raise(new TransitionMessage(new MemberViewModel(new Member(_model),this), "Transition"));
なんだこれ分けわかんなさすぎるぞ
ここまでしなきゃだめなのかって

67 :
>>65
Viewの部分の見た目とかはLivetと関係ない部分だろ
>>66
Livetのソース公開してるから見たらいい
new MemberViewModel(new Member(_model),this), "Transition"
の部分は、その例で、たまたまそうなってるだけであってLivetと直接関係ない。
わざわざMessenger.Raiseの中で3回もnewが出す必要はなく
サンプルのコードが悪いとしか言えない
ttp://ugaya40.net/livet
このページのいくつかの使用例と、あとはLivetのソース追っていけば
後は動かしながら試していくと一応なんとかなる
しかしドキュメント整備するとか言ってて、結果が何もないまま1年間経っちまったなw
なんとかして欲しいわ

68 :
使えないことが露呈するからサンプル作れないんだよ

69 :
見た目関係ないないなら、Livet、強いてはMVVMパターンさえいらない
Livetだからこんなことができますって表現がほしいね
てか、WPFのアイコン化とかコードビハインドなしでできるの?
ソース見なきゃコード書けないって、そもそもそういう設計ってどうなのよ?
疎結合とか言っておきながら、ライブラリのソース見なきゃ使えないっておかしくないか?
ViewModelHelper.BindNotifyChanged
ReadOnlyNotificationDispatcherCollection<MemberViewModel> Members
DispatcherHelper.UIDispatcher
あとこれなんだよ、この長ったらしいの
わけわかんないコード自動で書くんじゃねーよ
とにかくさ、MVVMができるのかなんか知らないけど
初心者お断りって書いて欲しかったわ
アンインスコ決定

70 :
あーあとさ、Win32APIを使う場合、一体MVVM的にどこにコード書くのさ?
それもLivet使えばxamlで書けるの?無理なんだろ?
この作者のMVVMの説明みたけど、WinFormではTreeViewで子ノードにチェックできないとか
書いてたけど、それぐらいカスタムコントロール作ればできるだろ
去年の年末以降、ぴたりと開発止まっちゃったみたいだけどもう投げ出したのかね
バグも多いみたいだしさー、他人のライブラリにバグがあるのが一番致命的なんだよ

71 :
<l:DirectInteractionMessage CallbackCommand="{Binding RemoveCommand}">
あとこれだよ、削除するときの確認ダイアログにメッセージを表示する機能があるか
どうかなんてどうやってV側でわかるんだって話よね
Removeって打っても、インテリセンス働かないしさw
VMがどんなプロパティを公開しているかすらわかんねーじゃん
結局V側がVMの内部実装を見て判断することになるわけで
だったら、VMでダイアログ出したほうが早いだろって話だよ
Vから作ったとしても一緒だよな
RemoveComandつけたから、VMで実装しようと考えるわけで
結局、VとVMどちらがわもソース見なきゃ書けないわけだろ
構造的に分離されてても、作業分担できないってことじゃん
しかも個人でやっている人間からすると無駄でしか無い

72 :
MVVMでどうやってゲーム作るんだ?
VMに依存しないで書けるんだよな?
スカイリムのようなゲームをMVVM+Livetで作ったサンプルを公開してほしいね

73 :
一つのフレームワークで業務アプリからゲームまでなんでも対応できると思っている奴

74 :
俺はもうlivetとかを使わずに自作の使ってるわ

75 :
>>73
なんでも対応できるように書いてたからね
Livet最強、他では無理
みたいなことばっかり書いてたくせに
何もできないじゃないか
MVVM以前にそもそもLivetに依存しているだろとw
Livetなければできないようなパターンを学習する意味あるのかって話
いつ投げ出すのかわからないようなライブラリに依存したコードを書くほうが
VとVMが依存したコードを書くよりも恐ろしい

76 :
ものすごくゆとりだなあ
問題をはき違いえているようにしか思えない
あとlivetをつかったそこそこ大きいソフトはKrileがある

77 :
銀の弾丸探しに労力かけるアホがいたのか

78 :
ソースもサンプルもドキュメントも、少し集中してLivetの作業やれよ、っという外野の声は多数。

79 :
>>76
ゆとりでも使えるものとして作ってるんじゃねーの?
あと、そこそこ大きいとかじゃなくて、小さいサンプルをくれと言ってる
ReadOnlyNotificationDispatcherCollectionでぐぐってもろくにサンプル出てこないだろ

80 :
ライブラリを提供する側としては、使ってもらうためには単純だけど網羅的なサンプルとか必要だからなー。

81 :
メッセージにstring使ってtypoする危険犯すくらいなら
enum使うようにデザインすればいいのにね
生産性に寄与してない

82 :
MVVMでゲームか。速度出なさそうだな・・
Messengerでオブジェクト出して座標をバインドとかだろうか・・・
一般的?なBBに全部自力描画でフリップ的な仕組みだと、どうやりゃいいか想像も付かんな。

83 :
LivetじゃなくてMVVM Light ToolkitとかSimple MVVM Toolkiとかどうなの
Simple MVVM Toolkitが特にきれいにまとまってていい感じなんだが

84 :
MVVM Light Toolkitこれはだめだわ糞すぎ

85 :
外人のサンプルみたら、MVVMどころか
ViewModelクラスすらなく、イベントハンドラにベタ書きしてた

86 :
>>85
それでいいんじゃね?
慣れてくればMVVMのお作法使ったほうが自分で面倒見ないと
いけないコード量が減らせるのでこっちがいいやって感じるんだけどさ

87 :
>>85
なんのためのサンプルかによるよな。
サンプルプログラムレベルだと冗長に感じるだろうし

88 :
動的にコントロールのインスタンスを作成するとき、
そのコントロールのイベントハンドも動的に追加するだけで、
柔軟性のあるコントロールが利用できる。
カスタムコントロールなんて作るだけ骨が折れるだけで拡張性がない。
所詮プログラミングはイベントハンドラを使うしかないのだ。

89 :
>>87
ゲームプログラマだから相当な実力だと思うんだが

90 :
>>89
それだったら「ゲームでMVVMなんて使えるか!」じゃないの?

91 :
そうかもしれん
素人がメモリリークやVとVMの分離を意識するだけ無駄だな

92 :
MVVMどころか、WPF使わないわな
リアルタイム系のシューティングやアクションとかだったら
カードゲームとかのんびり系ならいいけど

93 :
荒れてんなぁ。
U氏の我こそがMVVM教の祖である的な物言いが鼻に突くのに成果物があれだから叩かれやすいんだろう。
Livetは禁止ワードにしたらどうだろうw
あと、ゲームでMVVMなら、bubbleburstがあるだろ。
ttp://bubbleburst.codeplex.com/

94 :
今のところーコードや意味不明な文章を垂れ流してTwitterで騒いでるだけだからな

95 :
コードから伝わってくる神経質なデザインがコーディングしてていらいらする
各所での回答も冗長で的外れ、なんか統失っぽい

96 :
>>94-95
いい加減よそでやれ

97 :
みんなVMからDispatcher使いたいときどうしてる?

98 :
Vのインスタンスを渡すとか

99 :
最初にUIスレッドで初期化させてDispatcher.CurrentDispatcher

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
日下部陽一著 作ってわかるCプログラミング(第6版) (524)
七行プログラミング part6 (364)
ゲームプログラムなら俺に聞け23 (721)
VB超度級初心者がSQLを使いこなすまで(−−) (235)
メガデモを語る fr-08 (616)
スレを勃てるまでもないC/C++の質問はここで 20 (755)
--log9.info------------------
前乗りの路線バスが走っている地域が大都会 (176)
【D16】熊本のバスを語ろう【植木(鹿南中学前)】 (362)
【サイテーの】宇野自動車株式会社【栄誉を求めて】 (234)
【あすか】千葉県のバス会社3【シーサイド etc】 (398)
昔のJR(国鉄)バスを語ろう! (250)
★★★こんな客は嫌だ!二人目★★★ (266)
【マナカで】名鉄バス社員専用【モナカ】 (630)
【LKG】三菱ふそうエアロスター【MP】 (271)
☆相鉄バス乗務員専用スレ☆part1 (493)
バスの便利な街・不便な街 ふたたび (904)
[大垣駅前]名阪近鉄バス[若森営業所] (367)
【アイゴー!】ヒュンダイユニバース【2台目ニダー!】 (288)
【虹01】東京バス案内(ガイド) 総合スレ【反96】 (859)
【近江湖国】滋賀のバススレ【滋賀バス帝産】 (475)
【北鉄】石川県バス総合 9号車【乗合】 (526)
妄想バス路線 関東・東京編 (681)
--log55.com------------------
東京都個人タクシー協同組合第7支部
【香川愛媛】四国の運送屋6【徳島高知】
【タクシー】コンドルタクシー【東京】
東京タクシー 本社移転の件
エアウォーター物流
おまえら給料いくらだ?正直に言ってみろ Part.2
セイノウえきす
【名古屋市内最大手】つばめタクシーってどうよ4