トップページtech
1001コメント283KB

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2010/12/05(日) 22:08:33
あたらしいユーザーインターフェースシステム、Windows Presentation Frameworkについて語るスレ。
.NET4 もリリースされて盛り上がってまいりますた。

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プログラミング Part7
http://hibari.2ch.net/test/read.cgi/tech/1282479113/

関連スレ
Microsoft Silverlight その7
http://hibari.2ch.net/test/read.cgi/tech/1288613056/

過去スレ
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/
0897デフォルトの名無しさん2011/03/08(火) 14:26:18.40
業務で使いそうなDataGridなんか特に重い
JavaのJTableは重くならないために中はコンポーネントじゃなくて独自実装になってるというに
WPFのはスクロールしただけで中のコンポーネントの幅をみな再計算するため酷い重さ
0898デフォルトの名無しさん2011/03/08(火) 14:47:31.55
>>895
ゲームの描画なんて画像と文字と線を指定位置に描画することさえできれば充分なので
Direct3DやXNAのような低レベルなAPIでも無問題だから
Silverlightならクロスプラットフォームだしブラウザ上で動かせるのでメリットはあるが
WPFでゲームを作るメリットはない
ベクターベースのゲームならメリットはあるかもしれないけどね
0899デフォルトの名無しさん2011/03/08(火) 14:53:18.36
>>896
またオサレGUIかw
0900デフォルトの名無しさん2011/03/08(火) 15:12:57.98
表現力と聞いてRIAに対するflasherと同じ発想しかできないのが悲しい。
0901デフォルトの名無しさん2011/03/08(火) 15:34:31.13
業務向けの便利コントロールは完全にSilverlight優先
WPFの次のバージョンではSilverlightのホスティングに対応するらしいから、
いずれはWPFのUIといえばウィンドウいっぱいにSilverlightHostコントロールを貼り付けただけになるんだろうなw
0902デフォルトの名無しさん2011/03/08(火) 15:41:54.19
>>901
>WPFのUIといえばウィンドウいっぱいにSilverlightHostコントロールを貼り付けただけになるんだろうなw
それでいいと思うよw
0903デフォルトの名無しさん2011/03/08(火) 15:45:03.42
.NET Frameworkのサブセットの機能で十分なやつはSilverlightでいいよ。
0904デフォルトの名無しさん2011/03/08(火) 15:48:22.00
描画と入力だけSilverlight使えばいいわけでしょ
SilvelrightはActiveXコントロールとしてホスティングできるから、
フルセットの.NETからSilverlightのVisualTreeを操作できるように橋渡ししてやればいいだけ
現在のSilverlight4+.NET4でも実現は難しくないはず
0905デフォルトの名無しさん2011/03/08(火) 16:33:17.89
Blendのストーリーボードで卵を消しても範囲だけ残るんですがこれはどうすれば消えますか?
0906デフォルトの名無しさん2011/03/08(火) 20:30:00.92
<Style TargetType="Button">...

みたいにx:Keyを付けないと
private void Button_Click(object sender, RoutedEventArgs e)
{
var resource = (ResourceDictionary)Application.LoadComponent(new Uri("Dictionary1.xaml", UriKind.Relative));
grid.Resources = resource;
}
のように動的にリソースを入れ替えても瞬時に切り替わるけど、
x:Keyを明示的に付けてStaticResourceとして参照してると切り替わらない(DynamicResourceならOK)。
x:Keyを付けないときはDynamicResourceと同じ扱いになるのかな?
0907デフォルトの名無しさん2011/03/08(火) 20:57:37.77
>>895
正確には、アクションゲームみたいなフレームごとに描画しなおすタイプのゲームに向かない。
WPFはイベント駆動で画面再描画することを前提にパフォーマンス最適化されてる。
0908デフォルトの名無しさん2011/03/08(火) 22:54:21.15
>>896
実際、資料が少ないのが厳しいな
WPF解説してるサイトとかほとんどないし、とっかっかりが無い
Googleで「WPF 入門」で検索しても、1ページ(10件)目に出てくるのは
上から順に

企業サイト
http://www.atmarkit.co.jp/fdotnet/chushin/introwpf_index/index.html
http://msdn.microsoft.com/ja-jp/library/ms771449(v=vs.80).aspx
http://codezine.jp/article/detail/910
http://codezine.jp/article/detail/928

個人サイト
http://d.hatena.ne.jp/hilapon/20100520/1274374572
http://z80a.blog48.fc2.com/blog-category-38.html
http://blogs.wankuma.com/kzt/category/2039.aspx

これくらいしか有用なページ無いもんな
2ページ以降は似たようなちょっとした情報ばかりだし
0909デフォルトの名無しさん2011/03/08(火) 23:00:22.77
>>908
WPFやSLのお作法でいきなり作ろうと構えるとそれだけで負担になるので
とりあえずは名前付けてイベントハンドラ使って従来の方法で触ってみるのが
一番だよ。

その中で従来の方法で書いたコードをバインドなどWPFやSLのお作法で
書き直すとどうなるかってアプローチが一番いいと思う

大体の人はWinFormになれてるんだし
09109062011/03/08(火) 23:22:56.90
http://msdn.microsoft.com/ja-jp/library/system.windows.application.resources.aspx
ここによると
>また、リソース システムは、リソースが変更された場合に、そのリソースにバインドされている要素プロパティが自動的に更新されて変更を反映するようにします。

とあるので、リソースを入れ替えたら勝手に反映してくれるわけだ。
でもx:Keyを付けたリソースをStaticResourceでバインドしてると勝手に反映してくれないので、
入れ替えるリソースファイルにx:Keyの付いたリソースがあるならDynamicResourceでバインドしておく。

こんな理解でおk?
0911デフォルトの名無しさん2011/03/09(水) 01:51:46.76
>>909
WPFで一番戸惑ったのはポトペタでGUI作りにくかったことだな
Blend抜きだとタグを直接書いた方が楽だなんて何処にも書いていないし
0912デフォルトの名無しさん2011/03/09(水) 02:43:59.31
実行時までコントロールの数が不定のインターフェースって
MVVMの流儀だと、どう実装したらいいの?

例えば、接続されているハードウェアを列挙して、アイコン付きの
ラジオボタンあたりで選択させたいみたいな状況です。
(NVIDIAコントロールパネルのディスプレイ周り等)
0913デフォルトの名無しさん2011/03/09(水) 03:34:31.94
ObservableCollection<T>に突っ込んでListBoxにでもバインディングしとけばいい。
0914デフォルトの名無しさん2011/03/09(水) 18:24:06.57
((Storyboard)FindResource("Story")).Begin(this);
で例外がでるんですが、ストーリーボードのリソースはXAMLから検索してくれるんじゃないんですか?
<Storyboard x:Key="Story">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="SB">
0915デフォルトの名無しさん2011/03/09(水) 19:09:05.30
Sliderの値を整数で取得したいのですが、
値を整数で変化させるにはどうしたらいいですか?
0916デフォルトの名無しさん2011/03/09(水) 19:12:05.41
>>915
数値としてならConverter書いた方がいいのかな?
文字で欲しいのならStringFormat
0917デフォルトの名無しさん2011/03/10(木) 00:18:44.42
WPF/Silverlightけちょんけちょんだな
http://www.infoq.com/jp/news/2011/03/WinForms-ERP
0918デフォルトの名無しさん2011/03/10(木) 00:26:07.76
>>917
WPFはまあ・・・あれだがSLはいいと思うんだけどなあ・・・
やっぱりFlashとかの方が歴史が長いだけに開発者が多いので
厳しい目で見られるってことなのかね?
0919デフォルトの名無しさん2011/03/10(木) 00:36:10.64
「大手のコンポーネント開発元がWinFormsを切り捨てたから一部のユーザーが怒っている」
というだけの記事だろ
0920デフォルトの名無しさん2011/03/10(木) 00:38:15.63
"A Case for WinForms"が「WinFormsの場合」になるのか
相変わらずの超翻訳で安心した
0921デフォルトの名無しさん2011/03/10(木) 00:51:50.99
そりゃ今までWinForms用のDevExpressのコンポーネント使ってた人にとっては
切り捨てられたらショックだろうな
逆にWPF切り捨てならWinForms叩きでもっと荒れただろうな
別にただそれだけのこと
0922デフォルトの名無しさん2011/03/10(木) 19:40:01.79
WPFでユーチューブみたいなストリーミング再生をするにはどうすればいいのでしょうか?
MediaElement.SetSourceで出来そうだけどSilverlight限定?
0923デフォルトの名無しさん2011/03/11(金) 17:28:01.86
MSDNでhttp://www.diskspacefan.com/と同じようなサンプルを見た記憶があるんですが、
見つかりません
ご存知の方いませんか
0924デフォルトの名無しさん2011/03/15(火) 21:48:43.64
UIを複数のUserControlで作っていて、共通の部分がでてきたので一元化したいんだけど、
Xamlとコードの両方に共通化したい部分がある場合はCustomControl化してしまったほうがいいの?
デザイナーによる支援が貧弱になるのは痛いけど、UserControlを継承して…ってのはなんか違う気がする。
0925デフォルトの名無しさん2011/03/15(火) 22:02:16.25
>>922
直接URL渡せばWMPで再生できるなら再生できるよ
>>924
XAMLも一緒ならUserControlでいい
カスタムコントロールはXAML(テンプレート)とコードを分離できるコントロールを作るためのもんだ
0926デフォルトの名無しさん2011/03/15(火) 22:33:15.69
MSのガイドラインに沿ったもの作ろうとすると途端にしんどいな
0927デフォルトの名無しさん2011/03/15(火) 23:01:20.41
>>925
UserControlの継承はやり方がよくわからんです。
継承元(一元化したい部分を含んでいる)はコードのみで書かないとうまくいかない感じです。
0928デフォルトの名無しさん2011/03/15(火) 23:06:02.25
・共通部分をまた別のUserControlとして括り出せないか
・コードをビヘイビアとして再利用できないか
を検討してね
0929デフォルトの名無しさん2011/03/15(火) 23:15:44.07
>>928
上が一番簡単そうだけど管理が煩わしそう。
下は今回のケースなら適用できそうです。
XAMLはResourceとして括れるだけ括ってみます。
0930デフォルトの名無しさん2011/03/15(火) 23:19:12.21
>>929
プレイヤーを起動すれば?
0931デフォルトの名無しさん2011/03/17(木) 01:07:26.98
DOBON.NET の中の人は
WPF攻略しないの?
0932デフォルトの名無しさん2011/03/17(木) 01:55:35.10
簡単な方のビヘイビア(添付ビヘイビア)だとインスタンスフィールド持てないので困った。
めんどうだけどBlendの方のビヘイビア使うべきか。
0933デフォルトの名無しさん2011/03/17(木) 04:04:36.19
どぼんのひともう死んでるんじゃないの?
情報も古いままだし、初心者とって紛らわしい使えないサイト
0934デフォルトの名無しさん2011/03/17(木) 08:56:08.38
初心者は>>908のサイト見てれば基本的なことは分かる。
これテンプレに入れといてもいいかもしれない。
0935デフォルトの名無しさん2011/03/17(木) 22:14:40.14
Commandが失敗したことってどう通知したらいいんだろう
0936デフォルトの名無しさん2011/03/18(金) 02:28:51.68
WPFの資料が少ない最大原因は
Expression Blendとかいうのがなかったらきつすぎるから。Visual StudioだけでやるならWindows Form のほうがいいし。
ごく一部の専門家が使うイメージだ。
解説ペーjなんて作っても
WPFやるならExpression Blendを買おう。
これ買ったこと前提ですすめます
なんてやったら、そもそもそんなの買うようなのは解説ペーjなんてなくてもMicrosoftのページでいいだろうし全然よんでもらえないし
かといってExpressionなしでやるのも
なにこれ?XAMLでアニメーションとか依存プロパティとかテンプレート作るのコード複雑になりすぎてちょっと無理ある
でもアニメーションとか使わないんだったらWindows Formでよくね?ってなるし。
0937デフォルトの名無しさん2011/03/18(金) 02:45:02.42
書き込む前に推敲した方がいい
0938デフォルトの名無しさん2011/03/18(金) 06:33:26.31
>936
WPFでも、Formsで実現できるレベルの事しかしないならBlendなんか要らん。
つか、使ってもたいして楽にならんよ。
0939デフォルトの名無しさん2011/03/18(金) 09:46:01.12
>>935
バインディングの失敗とは違って
制御はコードにあるんだからどうとでも
好きにできるだろ
0940デフォルトの名無しさん2011/03/18(金) 12:45:08.22
アニメーションなんかより

レイアウトエンジンの有無
半透明のサポート

の方がよっぽど需要。
これらはBlendが無くても十分役立つ。
0941デフォルトの名無しさん2011/03/18(金) 15:04:29.42
Blendのテストデータを自動生成する機能だけはVSにも欲しい
バインディングの設定自体はVSのデザイナでも十分やれるけど、
BlendがVMのデータを適当に自動生成してくれて、プレビューしながらUI作れるのは便利
0942デフォルトの名無しさん2011/03/18(金) 15:39:53.35
うむ
BlendはVS2010以上に重いし
0943デフォルトの名無しさん2011/03/18(金) 16:54:47.30
そろそろ仮想PC上にWindowsとBlend体験版をインストールしなおす時期だお…
0944デフォルトの名無しさん2011/03/18(金) 17:37:18.25
昨日削っていいから無料版Blend出して欲しい
0945デフォルトの名無しさん2011/03/18(金) 17:50:23.39
BlendExpress

・・・・そうなったらおれも使う
0946デフォルトの名無しさん2011/03/18(金) 19:21:02.77
無料版を出すくらいならVisualStudioに統合してくれと思うが。
0947デフォルトの名無しさん2011/03/18(金) 20:56:55.34
同意
全く分けてる意味無いと思う
こんなもんプログラム書けない人が使えるわけないわ
ビヘイビアとかInteractionRequestとか、どんどん本末転倒な方向に進んでる
0948デフォルトの名無しさん2011/03/18(金) 21:54:58.29
WPFはオワコン
0949デフォルトの名無しさん2011/03/18(金) 22:08:22.83
プログラマが作業の手間を軽減させるのであればいいソフトだ。
デザイナーはDesign使ってろってこった。
0950デフォルトの名無しさん2011/03/18(金) 22:16:13.60
デザイナとの分業とか、夢見てちゃだめだと思うわ。
デザイナ向けツールはあっても良いけど、VS単体でプログラマが作業できるようにならないと、WPFなんて絶対流行らんわ。
0951デフォルトの名無しさん2011/03/18(金) 22:20:45.10
分担するということは人件費がかかるということ
そんなことできる会社が日本のどこにある
0952デフォルトの名無しさん2011/03/18(金) 22:23:03.40
絵で描いてもらえればそれでいい
0953デフォルトの名無しさん2011/03/18(金) 22:32:24.18
Blendのデータストアとかアホかと思う
結局XAMLでプログラミングしてるだけじゃん
0954デフォルトの名無しさん2011/03/19(土) 11:02:58.84
折れ線の描画方法をおしえてください
0955デフォルトの名無しさん2011/03/19(土) 11:03:42.62
Polyline
0956デフォルトの名無しさん2011/03/20(日) 04:01:40.82
VisualState内のStoryboardで、
<Storyboard>
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="RenderTransform.X" Storyboard.TargetName="LayoutRoot">
<EasingDoubleKeyFrame KeyTime="0" Value="{Binding ActualWidth, ElementName=LayoutRoot}"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
こんなふうにValueに動的に値をいれたいんだけど、Storyboard内ではBindingは使えないらしい。
ウィンドウサイズによって値が変わるので動的にやりたいんだけど何かいい方法ないですかね?
0957デフォルトの名無しさん2011/03/20(日) 21:26:04.30
OuterGlowBitmapEffectって.net4.0でビルドすると表示されない?
MSDNではBlurEffect使えって書いてあるけど
元絵とブラーさせたやつを重ねるのはメンドクサイ
何か良い方法はありませんか?
0958デフォルトの名無しさん2011/03/22(火) 09:29:10.94
Freezableを分かりやすく解説してくれ
0959デフォルトの名無しさん2011/03/22(火) 12:03:42.97
クリリンのことかー!
0960デフォルトの名無しさん2011/03/22(火) 15:43:52.28
ドキュメントに書いてるだろ・・・
0961デフォルトの名無しさん2011/03/22(火) 16:10:17.04
>>956
添付プロパティとして親のサイズに対する比率(0-1)で要素の位置を指定できるPanelを自作するとか
ピクセルシェーダならそういう条件での移動は簡単にできるので、移動させるだけならさすがにやりすぎだと思うけど
他にもエフェクトかけたりするならついでに移動もピクセルシェーダでやってしまう手もある
>>957
DropShadowEffect{ShadowDepth=0}
0962デフォルトの名無しさん2011/03/22(火) 16:25:39.63
>>961
なるほど、カスタムパネル、ピクセルシェーダー。目から鱗です。
Canvas並の機能のGrid軽量版をつくろうかと思ってたのでまずはカスタムパネルやってみます。
0963デフォルトの名無しさん2011/03/22(火) 17:32:43.80
MainViewのメニューコマンドでいろいろなダイアログをモーダルで開くタイプのアプリケーションを
MVVMで作成しようとしています。
このとき、MainViewModelのコマンドからダイアログ(HogeDialog)を開くにはどうするのがいいんでしょうか。
(1) HogeDialogを先に作り、HogeDialogの中でHogeDialogModel(ViewModel)を作る
(2) MainViewModelでHogeDialogModelを先に作り、HogeDialogを後付けする
どちらにしても、HogeDialogをMainViewModel内で直接newすると
VMがVに依存することになってしまうので、HogeDialogはMainViewModel以外の場所で作る必要がありますよね。
それを考えると、(2)の方が(1)よりも構造がシンプルでVM間のデータの受け渡しも楽になると思うのですが
webでよく見かけるのは(1)の方ですよね。
そもそも単体テストを楽にするのが目的なんだから、(2)のようにVM同士を依存させるのは避けて
必要なものだけInteractionRequestなどを通して間接的に渡した方がよいということなんでしょうか。
0964デフォルトの名無しさん2011/03/22(火) 19:13:17.24
>>961
DropShadow使ったらいいのか…
ありがとう、できました。
0965デフォルトの名無しさん2011/03/22(火) 20:17:33.37
DropShadow だとタイトルバーみたいなグロー効果でないんだけど
0966デフォルトの名無しさん2011/03/22(火) 20:25:14.96
この話題定期的に出るNE!
09679642011/03/22(火) 20:52:21.59
パッと見できたと思ったけど
下のと比べると薄い…
ttp://msdn.microsoft.com/ja-jp/library/system.windows.media.effects.outerglowbitmapeffect.aspx
0968デフォルトの名無しさん2011/03/22(火) 22:08:50.87
アニメーションが使いやすいな

Storyboadで回転しながら拡大しつつ色を変化させて移動
なんてDirectXとかでやったらちょっとコードがごちゃごちゃするけどXAMLならスッキリかける
0969デフォルトの名無しさん2011/03/23(水) 11:54:36.84
>>968
そういうのはストーリーボード相当のものを自前で実装するからごちゃごちゃしませんよ。
0970デフォルトの名無しさん2011/03/23(水) 13:23:06.19
その理屈ならWPF相当のものをDirect3Dで自前で実装すればごちゃごちゃしないし
Direct3D相当の抽象化レイヤを自前で実装して直接ハードを叩けばごちゃごちゃしないね
0971デフォルトの名無しさん2011/03/23(水) 13:28:29.18
WPFやFLASHほど高機能ではないけどね。

アニメーションエディターは2DだとFlashやDirectorやアフターエフェクツから取り込んだりね。
ほとんどのところではベクター画像とりあつかってないよ。

3DだとMayaとかMaxのデータをそのまま再生できるようにしてりしてます。
0972デフォルトの名無しさん2011/03/24(木) 15:28:35.14
OnPropertyChangedって意外に重いのね
0973デフォルトの名無しさん2011/03/24(木) 15:49:25.44
UIの更新とかに比べたら誤差だからどうでもいい
0974デフォルトの名無しさん2011/03/24(木) 16:07:45.70
500個くらい値かえたら結構カクカク
0975デフォルトの名無しさん2011/03/24(木) 16:11:40.07
WinFormsのころはBeginUpdateってあったろ
それと同じこと
0976デフォルトの名無しさん2011/03/24(木) 16:13:52.03
UIの更新に時間がかかってるだけで
OnPropertyChangedは関係ないな
使い方が悪い
0977デフォルトの名無しさん2011/03/24(木) 16:24:11.62
どうすればいいの?
0978デフォルトの名無しさん2011/03/24(木) 16:34:57.71
わかりません
情報を出してください
0979デフォルトの名無しさん2011/03/24(木) 16:49:25.60
Rect(形状)と文字列(色の名前)のプロパティとをもつクラスAがあって
ObservableCollection<A> OCを用意して
ItemsControl内でRectangleGeometryでAのプロパティをBindingして箱パコパコ描いてて
MouseMoveでOCのヨウ素の文字列を書き換えてるだけ
0980デフォルトの名無しさん2011/03/24(木) 16:54:52.16
おい、おまえのプログラム放射線だしてるぞ!
0981デフォルトの名無しさん2011/03/24(木) 20:30:17.20
いまこんなの書いてるんだが
http://ideone.com/Zq6TX

CommandParameterの指定をもう少しマシにできないものか
CommandParameter="{Binding PlacementTarget.SelectedItems,RelativeSource={RelativeSource FindAncestor,AncestorType=ContextMenu}}"
じゃなくて別なアプローチで…

これが駄目な理由はよく分からない
http://ideone.com/5BguP
0982デフォルトの名無しさん2011/03/24(木) 23:53:35.32
WPFとは全く関係ないけど、GUI以外軽視してるプログラムが多くて悲しい
ワープロソフトにたとえるなら保存するときはいちいちファイル→名前をつけて保存(or上書き保存)をクリックしなきゃならなくて
Ctrl+Sキーで保存する機能がない、みたいな。


プログラマはもっとユーザーインターフェースのこと考えようぜ。
0983デフォルトの名無しさん2011/03/24(木) 23:58:02.93
( ´_ゝ`)フーン
0984デフォルトの名無しさん2011/03/25(金) 02:35:38.80
てか、それ、MSは再三言ってることじゃない。
0985デフォルトの名無しさん2011/03/25(金) 09:06:22.82
WinFormsのころはBeginUpdateに相当するものはありますか?
実現できますか?
0986デフォルトの名無しさん2011/03/25(金) 13:08:34.04
CompositionTarget.Rendering使うと
あるプライベート変数が
イベントハンドラから見たときと
それと別のスレッドから見たときとで値が異なるということが起きてるのですがなぜでしょう?
0987デフォルトの名無しさん2011/03/25(金) 22:55:23.95
考えられるのは、自分の忘れてるところで書き換わってるか、
スレッドローカル属性付けちゃってるか?
0988デフォルトの名無しさん2011/03/25(金) 22:56:33.75
>>985
ViewModel側でObservableCollection使うのやめて、
自前で、自分の好きなタイミングでCollectionChanged起こすようなコレクション作ればいいんじゃないかな。
0989デフォルトの名無しさん2011/03/26(土) 08:13:41.66
まあ、やもやしている人が多い部分ではある。
http://togetter.com/li/116145
0990デフォルトの名無しさん2011/03/26(土) 08:24:35.69
見た目とコードの分離なんて机上の空論だよなw
まで読んだ
0991 忍法帖【Lv=4,xxxP】 2011/03/26(土) 08:52:44.19
美人デザイナーと仕事ができる可能性を残している
0992デフォルトの名無しさん2011/03/26(土) 13:55:01.55
>>989
アーキテクチャパターンを実装パターンと混同してるからそういうことになるんじゃないのかな。
MVCとかMVVMってどっちかって言うとアーキテクチャパターンなのに、
実装レベルの同一性で議論してないか、それ。
0993デフォルトの名無しさん2011/03/26(土) 15:24:16.55
でも純粋に実装抜きでアーキテクチャだけならMVPパターンと同じでしょ
ViewとPresenterの間の通信にWPFのバインディング機能を使えば便利じゃね?
というのがMVVMなんだから、どうしても実装抜きには議論できないと思う
0994デフォルトの名無しさん2011/03/26(土) 15:34:47.45
MVPよりMVVMのほうが単体テストしやすいような
0995デフォルトの名無しさん2011/03/26(土) 15:35:40.61
いやー、わざわざそれに名前付ける必要あったのかなとも思う。
正直、ステートフルで仮想化されまくりなGUI向けMVCって言い方でもよかった気がする。
0996デフォルトの名無しさん2011/03/26(土) 15:44:45.71
WPF用に作られた一般的なViewModelに対するViewを
もしWinFormsで実装するとしたら、Viewがdynamic型を通してViewModelを監視したり
ViewModelのコマンドを実行するようにすれば、V->VMの結合の強さもMVVMと全く同じになるけど
それをMVVMと呼ぶかというと…やっぱりMVPじゃないかなw
レス数が950を超えています。1000を超えると書き込みができなくなります。