1read 100read
2011年11月2期プログラム12: WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part11 (321) TOP カテ一覧 スレ一覧 2ch元 削除依頼

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


1 :11/11/06 〜 最終レス :11/11/24
また完走できませんでした。WPFは、倒れたままなのか?
ユーザーインターフェースシステム、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プログラミング Part10
http://hibari.2ch.net/test/read.cgi/tech/1315648327/
関連スレ
Microsoft Silverlight その8
http://hibari.2ch.net/test/read.cgi/tech/1300831451/
過去スレ
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/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/

2 :
2get

3 :
>>1
なぜか983レス目で落ちるのな

4 :
書き込みが980超えると即死判定に引っかかって一定時間書き込みないと落ちちゃう

5 :
ネタ投下
Livet の Messenger クラスを使ってみる
ttp://d.hatena.ne.jp/hilapon/20111108/1320728308

6 :
こんなもん普通にコードビハインドに書くか
ビューでインターフェイス実装してVMから呼べよ
さすがにこれ見て MVVMってすてき! と思う奴はいないだろうw

7 :
>6
VMのコマンド内で、条件によってViewをクローズするという用途には使えるだろ。

8 :
V Closingをキャッチ。VMに通達、戻り値を待つ
 VM 終了判断。確認ダイアログをVに通達
  V 確認ダイアログ表示、結果を返す
 VM 終了処理あるいはキャンセル
V そのまま終了あるいはClosingをキャンセル
ここまでやらないと意味ないよね
最小化最大化はVの範疇じゃないのVMに通達する必要はあるの

9 :
インターフェイスでいいよ
ウィンドウの挙動なんてどうせ細かいコード書くんだから

10 :
Livet の作者のブログ、なくなってるじゃんw

11 :
ダイアログとかメインウィンドウの操作とかは使い回すから
IMessageBoxService mb = this.messageBoxService; //コンストラクタかプロパティで設定
mb.ShowDialog("終了しますか?", (result) => {
 if (result) { IApplication app = this.application; app.Exit(); }
});
みたいに扱えた方が便利だし、何に依存してるかはっきりするし、
メッセージと違ってちゃんと型がある

12 :
>8
VMはVを知らなくてよい。VとVMの双方向通信だと疎結合じゃなくなるよね。よってその案は却下。

13 :
クラスの使い方のサンプル見てステキって思う奴いるのか?
SHA256クラスのサンプル見てステキ言う人間は想像しがたいな

14 :
処で、Drag&Dropは何処に実装すべきなの?

15 :
SHA256クラスを使わない場合に比べてはるかに少ないコードで済んでいればステキだろ
>>5の例はどう考えてもコード書くより手間かかってるし
特にメリットもないだろ

16 :
使い方を説明するのに必ずしも合理性は必要ないってことだろ
アスペかてめーは

17 :
はい

18 :
>>14
コードビハインドで受けてVMのメソッドを呼ぶ
使いまわすならドロップを受け取るメソッドを宣言したインターフェイス用意して
VMに実装してビヘイビアから呼び出す

19 :
>>12
それじゃVとVMが分離できないじゃない。VがVMに依存しちゃう。
メッセージを「ブロードキャスト」して通信する以外癒着しちゃうよ

20 :
>>19
VM に V を参照させろとでも?V が VM に依存しちゃいけないの?

21 :
>>18
>コードビハインドで受けてVMのメソッドを呼ぶ
ここまでは当然だが、メソッドの粒度を大きめにすべきか
小さくしてロジックをコードビハインド主にするかのさじ加減はどうでしょうか?
質問が細切れになってすいません

22 :
VはVMに依存するはずだけどな
VMの「型」には依存しないけど

23 :
参照の向きだけで言えばVMはVを間接的に参照してるぞ
だから変更通知が行われるんだよ
Vの「型」には依存しないけど

24 :
>23
あほどね。でもそれはプログラマが意識することじゃないよね。

25 :
おれらMVVM教の教義のためにやってるんじゃないんだからさぁ
「(デザインとコードを)分離できる」というメリットがないならMVVMやる意味なんてかけらもないんだよ
それ無視して「MVVMとは〜」って、意味ないよねそれ

26 :
前スレでtabcontrolへのコントロールの動的追加で教えてもらったものです。
もう1ヶ月半前になるのですが。
ttp://ideone.com/iRw1H
このサンプルコードを作ってもらってあれこれやってましたが、
どうもわからんことがあって解決できんので教えてください。
Items = Enumerable.Range(0, 10).Select(n => 10 + r.Next(60)).ToArray();

Items = Enumerable.Range(0, 100).Select(n => 10 + r.Next(60)).ToArray();
に変更してビルドして動かし、addボタンでタブを追加して表示されたlistviewをスクロールすると、
タブにある全てのlistviewのスクロールバーが連動してうごきます。
連動しないようにできないものでしょうか。

27 :
>25
メリットを感じるならやる必要あり。
メリットを感じないならやる必要なし。
メリットが判らぬならっこすべし。

28 :
>25
イベントハンドラで頑張ってねw

29 :
おまえらすっかり忘れてるけどコードビハインドじゃなくてxamlの中にC#書けるんだよね

30 :
んなのPC98の頃から知ってるわ。

31 :
>>26
ListViewがタブごとに生成できてないってのは想像ついてるか?

32 :
>29
Xamlの中にLisp書けるのは知ってるが、それは知らなかった。

33 :
つーかWPFがMVVM前提でできててイベントハンドラはおまけみたいなもんだから
リスト関連のコントロールとかは仮想化まわりで変な挙動したりリークしたりする
リークはさすがに何とかしてほしいが

34 :
>33
そう。幾つかのイベントで Forms じゃ考えられないおかしな挙動をする。
フォーラムやフィードバック見ると、幾つか問題報告されてるよ。

35 :
だからMVVMで組んだ方がそういう意味でも楽なんだよね・・・
SLでもそうだが

36 :
>>5
自分でTriggerAction作ってやってるな
てか、こうやるのって少数なんか
いやまぁコードビハインドに書くより手間はかかるけど・・・

37 :
livetのサイト繋がらないんだけど

38 :
MSに組み込まれたとか…

39 :
更新忘れて権利がなくなっただけじゃないの
見る限り

40 :
更新忘れてただけっぽいな

41 :
WPFのC#コードとXAMLの関係は
HTMLとCSSの関係みたいなもんか!
デザインに関する部分をべつふぁいるにするーみたいなー?

42 :
それ言うならHTMLとJSだろ。

43 :
レイアウト/スタイル/コード
HTML/CSS/Javascript
XAML/XAML/C#

44 :
全然違う
スキームが違う
HTMLはレイアウトすら担当してない

45 :
>>43
それをいうならこうだろよ
レイアウト/スタイル/コード/サーバーサイド
HTML/CSS/Javascript/Java servlet
View(XAML)/View(XAML)/ViewModel(VBorC#)/Model(VBorC#)

46 :
htmlは意味づけされた文章やブロックが乱雑に突っ込んであるだけ
レイアウトは別

47 :
43の言うレイアウトは構造の話じゃないのか

48 :
>34
こんなの見つけたよ。
https://connect.microsoft.com/site550/feedback/details/657075/wpf-application-activated
https://connect.microsoft.com/site550/feedback/details/671266/textbox-previewtextinput
https://connect.microsoft.com/site550/feedback/details/635470/wpf-textbox-textchanged-ime

49 :
>48
最近の話かと思ったら放置プレイかよ・・・

50 :
ViewModel側で今デザインモード時かって分かる方法ありますか・・・?

51 :
何かがnullを返した気がする

52 :
ああこれこれ
http://msdn.microsoft.com/ja-jp/library/bb546934.aspx#WritingCodeforDesignTime

53 :
>>52
ありがとう。
できましたー。

54 :
BlendってListView.GridViewColumnのCellTemplateやHeaderTemplateって対応してないのかな。
(XAMLをいじってTemplate作ってからなら参照できるけど・・・)
DataGridでやれってことですか。

55 :
WPFおもしれぇ
デザインしているだけでおもしろい
でも、デザイン時と実行時のサイズが違うのはなぜだ・・・orz

56 :
ちゃんと理解しないでデザイナにたよりすぎるからそうなる

57 :
>>55
VSでデザインしてるからだろ。Blendだと実行時に近いデザインできるよ。

58 :
MVVMって、ここまでViewとViewModelの動作を分離する必要あるの?
ttp://d.hatena.ne.jp/hilapon/20111111/1320978112

59 :
書いてる奴が必要だと思うところまでやれば良いんだよ
MVVMではプログラマが死ぬ必要がありますと解説されていたら死ぬのかお前は

60 :
MVVM原理主義者なら、と言われたら死にます。

61 :
まあ、いかにVの処理をVMに書くかという本末転倒な議論になってしまっているのは事実
コードビハインドを無くすことを目的にするのはよろしくない

62 :
>>57
VSだ、Blend買えないからな
>>56
はあ?無知は黙っとけ

63 :
>>62
XAMLにデザイナー用の寸法が入ってる場合があるよ

64 :
さすがにXAMLのイベントトリガの中でメッセージ出すのは本末転倒だと思う
結局XAMLにコード書いてるだけじゃねえか

65 :
>>62
VSはデザイナでXAMLを正確に表現できません。特にエフェクトは絶望的。

66 :
唯一のメリットはユニットテストくらいか?

67 :
どっちみち>>64みたいなのはView表示してみないとテストできんでしょ
完全にコードビハインドを書かないことが目的化していて
XAMLにロジックが入って(MVVMではなくWPF本来の意味での)コードとロジックの分離も崩れて
コードよりデバッグしづらいしXAMLの見通しも悪くなる

68 :
ビューとロジックの分離 の間違い

69 :
主流がどこに移るかは旗振り役次第だ
MVVMの次は何だ?

70 :
メッセージボックスを出すのはViewの領域だと思うやつもいる
VMがメッセージボックス出さなくてViewに委譲すればメッセージボックスじゃなくてステータスバーに出したりできるかもしれない

71 :
>>65
まじかー、Blendがある以上、MVVMみたくビュー関連はそっちにまかせるって感じになりそうだな
VSはいずれコードしか書けない重いテキストエディタになりそうw

72 :
VSも11でBlendの機能かなり取り込むけどね。

73 :
コントロールの1つのプロパティに複数のバインドができないからな
やれることには限外がある

74 :
>>70
同意。確認メッセージやファイルダイアログ程度なら、Viewに責務持たせてもいいじゃん。

75 :
Viewでもいいけどコードビハインド書けって話
ボタンが押されたらダイアログを表示する処理をXAMLだけで書くのは
そりゃただの「XAMLプログラミング」だ

76 :
>>73
MultiBinding

77 :
ファイルダイアログ程度
ジョークだよな?

78 :
>>75
イベントハンドラでViewModelのコマンド呼び出すんですね。よくわかりますwww

79 :
どいつもこいつもメモリリークのこと考えてないだろ。

80 :
ビヘイビア化しておくとわざわざその都度コードビハインドに書かなくてよくなるんだよ
あと仮想化関連でのハンドラの奇妙な挙動やリークとかも防げる

81 :
>75
ダイアログ表示するならVMじゃね?コードビハインドいらんだろ。

82 :
VM->Vの通知にメッセージ使うのは誰も否定してないでしょ
別にInformationDialogInteractionMessageActionの類をやめてコードビハインドで実装したところで
全くメモリリークの原因にはならないし他の何かがビューに依存するわけでもない

83 :
ビヘイビアを100%Vだと言い切ってるのか?

84 :
ぐおおおおおおおおおおおおおおおおおおおおおおおおおお
internalじゃバインドできないのか!!!
俺の5時間かえせええええええええええええええええええええ

85 :
>82
ん?VMにコマンド定義してるのに、YesNoダイアログをViewのクリックイベントで表示?
どちらのボタンが押されたか、どうやってVMに通知するの?
試しに実装してみそ?

86 :
Blend使っている人からすればMVVMにすれば楽なのかしれないが
xamlを手打ちしてる俺からすれば
xamlにいろいろやらせるために頭ひねって長ったらしいコード書くより
コードビハインドとかでパパっと書いた方が圧倒的に早いんだがw

87 :
YesNoダイアログでYes押したときとNo押したときで違うコマンドが実行されるようにすればいいんじゃね

88 :
もちろんDebug.WriteLineとかもVにやらせるんだよな?

89 :
>86
Blend使わない人からすればコードビハインドにすれば楽なのかしれないが
Blendを使ってる俺からすれば
Viewにいろいろやらせるために頭ひねって長ったらしいコード書くより
Blendでパパっと操作した方が圧倒的に早いんだがw

90 :
>>87
あのう・・・コマンド、Buttonにバインド済みなんですが・・・

91 :
VとVMどっちにやらせるかってのは
Vを削除してもエラー無くコンパイルできるかって考えてやってる

92 :
>>85
実際>>58はそれをXAMLだけでやってるんだよ
それで済む状況はもちろん限られるけど、その場合にビヘイビア使ってXAMLだけで書くか
コードビハインドで書くかという話
もちろんそういうの無しで全部VM経由でっていうのもアリ

93 :
めんどくさいだけで利点無

94 :
BlendのExpressEditonとか出してくれよ・・・
1回触ってみたい
体験版じゃ1回期限切れたら二度と使えないからなー

95 :
なんという思想家のむれ
バカが

96 :
こういうのが業務に流行ると物が全く仕上がらないね

97 :
なんせ重い重いとしか言わないスレだからな
どうせリークとか考えないやつらばっかりなんだろ

98 :
ブレンド高いとか言ってるけど、それくらい自分で投資しろよw

99 :
次のが待ち構えてる今わざわざ買うかよ

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼