トップページtech
984コメント312KB

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2014/09/12(金) 21:03:09.48ID:IBfP15Rf
ユーザーインターフェイスシステム、Windows Presentation Frameworkについて語るスレ。

Visual Studio 2013 & 2012 & 2010
http://www.microsoft.com/visualstudio/jpn/downloads
Microsoft .NET Framework 4 (Web インストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=9CFB2D51-5FF4-4491-B0E5-B386F32C0992&;amp;displaylang=ja
Microsoft .NET Framework 4 (スタンドアロンインストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=0A391ABD-25C1-4FC0-919F-B21F31AB88B7&;amp;displaylang=ja
Microsoft .NET Framework 4.5
http://msdn.microsoft.com/ja-jp/library/vstudio/5a4x27ek.aspx

前スレ
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part17
http://peace.2ch.net/test/read.cgi/tech/1384165897/

関連スレ
Microsoft Silverlight その9
http://toro.2ch.net/test/read.cgi/tech/1321150267/

Windowsストアアプリ開発について語れ part2
http://peace.2ch.net/test/read.cgi/tech/1388921236/

コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
0002デフォルトの名無しさん2014/09/13(土) 03:42:12.55ID:o7tow4WW
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::
0003デフォルトの名無しさん2014/09/13(土) 13:25:24.85ID:YhLm7TN3
XML書くとかクソ面倒臭そう
0004デフォルトの名無しさん2014/09/13(土) 13:27:54.65ID:YhLm7TN3
グラフィックスはDirect3Dが使われるってWikipediaに書いてあるけどゲームとか作るのに向いてるってこと?
0005デフォルトの名無しさん2014/09/13(土) 13:48:01.59ID:G+jDHYHb
XML(XAML)全部手書きなんかせんし、ゲームには全く向かんぞ
0006デフォルトの名無しさん2014/09/13(土) 14:08:13.21ID:xYJZLHHe
所詮プレゼンテーション用のアプリか
プレゼンテーションなんてPowerPointで十分だ
0007デフォルトの名無しさん2014/09/13(土) 14:16:09.43ID:G+jDHYHb
バインドが肝だからある意味、紙芝居かもな。入力もできるがなw
0008デフォルトの名無しさん2014/09/13(土) 15:54:55.34ID:UTK/dH9B
パワポとXAMLが統合すれば・・・

今の職場でプログラムは出来ないけど
めっちゃ奇麗なパワポの資料作る人がいるんだよね
UIはパワポに任せるとか
0009デフォルトの名無しさん2014/09/13(土) 16:14:45.72ID:T4wMMDpo
>>8
正気かw
0010デフォルトの名無しさん2014/09/13(土) 16:45:30.29ID:CEzP+lKU
Web表示用のXAMLとかあったよな
誰も使ってるの見たことないが
0011デフォルトの名無しさん2014/09/13(土) 19:55:38.26ID:35FIv3An
逆にWindows フォームで作るメリットとは
0012デフォルトの名無しさん2014/09/13(土) 20:02:09.32ID:LzYQM/9g
本当に有用ならもっと普及してたはず
0013デフォルトの名無しさん2014/09/13(土) 20:06:52.43ID:zrSUNLzx
なぜWPF(XAML)とASP.NET WebPagesを分けたのかわからない
WebPagesをXAMLで記述できたなら絶対的な地位を確立できはずなのに
トレンドがすでにWebになっていてそれは止まらないからASP.NETはvNextというように常に進化してるわけだけどWPFの進化ってずっと止まってるよね
逆転の発想でRazorでデスクトップアプリのVを記述できるようにすればいいのに
0014デフォルトの名無しさん2014/09/13(土) 20:12:14.84ID:Mqgtp+Th
WPFみたいな半端な技術を覚えなくていいこと
0015デフォルトの名無しさん2014/09/13(土) 20:20:38.96ID:LzYQM/9g
JavaFXと心中します
0016デフォルトの名無しさん2014/09/14(日) 04:34:35.90ID:Vfg3hNMC
MVVMインフラでデファクトスタンダードになるライブラリ早く出てくれないかなぁ
Prismはどうにも弱いんだよね…
0017デフォルトの名無しさん2014/09/14(日) 10:47:32.55ID:vfB/0ChX
>>16
同意
0018デフォルトの名無しさん2014/09/14(日) 13:23:50.14ID:Q/YD9gHS
いろいろ言いたいことはあるけど、WPF、なんやかんやで気に入ってるっぽい
0019デフォルトの名無しさん2014/09/14(日) 15:44:38.47ID:Vfg3hNMC
Prism
MVVM Light
Livet
とかいくつかあるが、どれ使ってる?

PrismはMVVM系機能が弱い
MVVMLightはバランスとれてるけど日本だとユーザー層が薄い
Livetはかなり楽できるけど痒い所に手が届かない
という印象
0020デフォルトの名無しさん2014/09/14(日) 16:01:39.04ID:r/q+w3eb
MVVMCross(´・_・`)
0021デフォルトの名無しさん2014/09/14(日) 16:06:53.82ID:Vfg3hNMC
>>20
Xamarinの事例、NHK紅白歌合戦アプリくらいしか聞かないけどアレどうなんです…?
0022デフォルトの名無しさん2014/09/14(日) 16:25:03.53ID:r/q+w3eb
>>21
今実案件で使ってるよ。
十分以上に実用的。
0023デフォルトの名無しさん2014/09/14(日) 17:37:51.99ID:vdvszDXw
MVVM Lightを使ってるわ
DIとVMのスニペットだけでええねん
0024デフォルトの名無しさん2014/09/14(日) 17:54:45.61ID:vfB/0ChX
>>19
Livetの代わりにMVVMCross入れるべきだろ
0025デフォルトの名無しさん2014/09/14(日) 18:30:09.08ID:Vfg3hNMC
>>24
デスクトップアプリ畑の人間なのでCrossは使った事がないんだよね…

>>23
中途半端なイメージあって触ってないけど、正直足りなくならない?
0026デフォルトの名無しさん2014/09/14(日) 18:50:28.76ID:r/q+w3eb
自分はスマホ案件なのでMvvmCross使ってるんだけどVM作る時のバインディングと対応するView生成とDIにしか使ってない。

後どんな機能が他のやつだとあるのん?
0027デフォルトの名無しさん2014/09/14(日) 18:51:09.81ID:vdvszDXw
>>25
.net3.5の指定が来ても使えるしトレードオフかな
0028デフォルトの名無しさん2014/09/14(日) 20:01:56.28ID:6r0yaFbD
みんなが各FWを使っていて、機能が足りない、痒いところに手が届かないと思うところってどんなところ?
自分は、FWの基本的な機能と、自前のBehaviorやTrigerActionなんかで事足りちゃってるタイプなので。
0029デフォルトの名無しさん2014/09/14(日) 20:11:11.93ID:Vfg3hNMC
>>28
FWレベルというか、ライブラリレベルの話だと、Model層で管理してるアイテムのリストをViewModelを介してViewに反映させたい時に便利なクラスがあるもののModel側のAdd/Delete/Insert/Mergeを素直に反映しすぎてパフォーマンス出ない…とか

PrismとかはInteractionRequestがリークの元で扱い気をつける必要があるetcとかをチームに展開するのが億劫とか…
0030デフォルトの名無しさん2014/09/14(日) 20:14:52.71ID:87mYTJKv
そろそろ言語レベルで対応してくだしあ
0031デフォルトの名無しさん2014/09/14(日) 20:51:11.44ID:vdvszDXw
ルートコマンドにカスタムコマンドをストレートにバインドしたい
分解して紐づければ標準機能でもできるけど歪なんだよな
0032デフォルトの名無しさん2014/09/14(日) 22:02:18.90ID:7N0LEKlz
素直にイベントをバインディング出来るようにすればいいのにな
0033デフォルトの名無しさん2014/09/15(月) 09:07:05.25ID:e89ZEgqy
俺はもう諦めてXAMLでUI定義してあとFormsと同じように書いてるからどうでもいい
0034デフォルトの名無しさん2014/09/15(月) 09:47:23.68ID:e89ZEgqy
ピンクのユニコーンみたいなフワフワとした思想を語られても迷惑だわ
実践して欲しければ体系的にまとめて本でも出せや
0035デフォルトの名無しさん2014/09/16(火) 05:03:04.01ID:fBY9LEt5
いくらでも本出てるやろ
英語よめ英語
0036デフォルトの名無しさん2014/09/16(火) 09:21:39.82ID:PrDIKP1S
具体的な署名挙げろよゴミ
お前もWPFと同じで中身がないレスするのがお得意技か?
0037デフォルトの名無しさん2014/09/16(火) 13:05:14.18ID:uMFi5zPa
どんだけ沸点低いんだよ
0038デフォルトの名無しさん2014/09/16(火) 14:15:06.50ID:ASfuJDWa
まぁ英語すら読めない無能には敷居の高い技術だって事は分かった
0039デフォルトの名無しさん2014/09/16(火) 21:51:47.47ID:fBY9LEt5
本当に日本語書籍出ないよな
書いたら売れんのかしら
0040デフォルトの名無しさん2014/09/17(水) 10:54:17.83ID:k7ATJ22m
日本のIT(死語)は死んでいる
0041デフォルトの名無しさん2014/09/17(水) 12:41:09.62ID:wZ4zyUjD
WPFやると実感する
英語の勉強の必要性
0042デフォルトの名無しさん2014/09/17(水) 13:24:24.23ID:sIgujKHq
勉強するほどの難度じゃないだろう
0043デフォルトの名無しさん2014/09/17(水) 13:30:23.23ID:UF9YVziV
本を買うような初心者は

「WPFとかオワコンだしwwww」

って思ってるから売れないよ
見向きもされない
0044デフォルトの名無しさん2014/09/17(水) 14:14:31.53ID:or6PO8CM
どうみてもオワコンです
0045デフォルトの名無しさん2014/09/17(水) 14:18:55.63ID:RhGPlwMd
始まってすらいなかったわけだが…だからオワコンではない
0046デフォルトの名無しさん2014/09/17(水) 15:17:23.27ID:or6PO8CM
それ以上 Node.js を dis らないで
0047デフォルトの名無しさん2014/09/17(水) 16:45:33.98ID:UWxtUwZE
本買わないでネットだけで済ましてる俺かっけーってばかたまにいるがネットで調べるよりも遥かに低コストだっつーの
0048デフォルトの名無しさん2014/09/17(水) 18:19:57.21ID:RhGPlwMd
電車使うかタクシー使うかみたいな話
0049デフォルトの名無しさん2014/09/17(水) 19:08:23.50ID:ji0sMMym
JavaScriptでサーバーサイドロジックはちょっと怖いな
XAMLの不安になるブラックボックスさもクライアントサイドだから許せる
0050デフォルトの名無しさん2014/09/18(木) 08:54:36.69ID:aakCeMAg
俺はネットで十分だった
0051デフォルトの名無しさん2014/09/18(木) 17:05:32.61ID:B59MRMnM
Windowのコンストラクタにデザイナにて設置したLabelのContentに文字列を設定したのですが、
コード分析にてCA2214の警告が出ます。
問題は無いのでしょうが、何故このような警告が出るのでしょうか?

Public Sub New()

' この呼び出しはデザイナーで必要です。
InitializeComponent()

' InitializeComponent() 呼び出しの後で初期化を追加します。
Me.Label1.Content = "hoge"
End Sub

C#で同様のことを行うと警告は出ませんでした。
0052デフォルトの名無しさん2014/09/23(火) 15:05:22.90ID:M5VwKtvS
それ、なんか色々ゴミを削除してからビルドし直せばいいんだっけ。
まともにビルドできないのはちょっとねえ。
0053デフォルトの名無しさん2014/09/23(火) 22:39:55.53ID:pZJGAVB9
警告だから無視でいいけど使い方がまずいんだったら見直したほうがいいだろ
0054512014/09/24(水) 10:40:50.31ID:y1DRQEzd
>>52
>>53
新規に作成したばかりのプロジェクトでも起こるんですよね。
自分の環境だけなのかな?
とりあえず無視して作業してますが原因が知りたい・・・
0055デフォルトの名無しさん2014/09/24(水) 14:06:54.29ID:x+4QYqZM
WPFで作ったWindowのボタンやラベルなどの文字が滲んだように表示されます(.NET3.0)。
これを .NET3.5以上でビルドすると、滲まずに正常に表示されます。
.NET3.0で滲まないようにできますか?
0056552014/09/24(水) 14:15:45.06ID:x+4QYqZM
↑の追加
Win7のVS2013のC#でビルドして、WinXPで実行した場合に滲みます
Win7では.NET3.0でも滲みません。
0057デフォルトの名無しさん2014/09/24(水) 16:44:27.79ID:oELApLTY
>>55
仕組み的に無理な気がするけど識者の方よろ
0058デフォルトの名無しさん2014/09/24(水) 17:27:00.32ID:q/tWfyQ0
>>54
いやいや
だから初期化したばかりなのにまた変えてるから問題なんでしょ?
変えるなら初期化のところでやれってこと

理解してね
0059デフォルトの名無しさん2014/09/24(水) 20:54:35.42ID:3Lqe917Y
>>55
WPFはSystem DPI Aware
MSDNの田中達彦のブログをググれば詳しく載ってる
0060デフォルトの名無しさん2014/09/25(木) 12:15:29.25ID:9IG4OD/P
>>59
DPI云々の話じゃなくて、3.0とかはアンチエイリアスがーってはなしじゃねーの?
0061512014/09/25(木) 12:36:41.28ID:6ODIHvxl
>>58
バインドするなりForm_Loadで設定するなりすれば回避は出来ました。
ただ根本の「コンストラクタのInitializeComponentの後にコントロールに値を設定するのが
C#は良くてVBはダメな原因」が知りたいのです。
0062デフォルトの名無しさん2014/09/25(木) 12:45:01.12ID:swWOjTgx
とりあえずC#とVBでそれぞれ逆コンパイルした結果を比べてみたら
0063デフォルトの名無しさん2014/09/25(木) 14:14:52.32ID:X+8MuYIv
>>51
これは見た?
http://msdn.microsoft.com/ja-jp/library/ms182331.aspx
0064512014/09/25(木) 15:22:11.38ID:6ODIHvxl
>>62
そうですね、時間が取れたらすぐ試してみます。

>>63
はい、すでに見ていました。
プロパティにアクセスしているだけなので何故この警告が出るのか分からず、
C#とVBで差異はないかと試したところ、C#では警告が出なかったことが質問する発端でした。
0065デフォルトの名無しさん2014/09/25(木) 20:53:44.05ID:RezO5tVl
>>64
警告の内容みるかぎり、むしろC#のコード分析で警告でないほうがおかしいと思うんだが
まあ、ちゃんと環境書かないようなやつの発言が信頼できるかどうかわからん
0066デフォルトの名無しさん2014/09/25(木) 21:10:28.52ID:LKyNfarp
>>64
コンパイラの方針の違いだろ
VBは初心者多いから丁寧なんだろ
そんなもんフィーリングでわかるだろ?

警告は警告
それだけ
0067デフォルトの名無しさん2014/09/25(木) 21:12:27.61ID:LKyNfarp
書き忘れた

C#ではいいVBではダメじゃなくて
VBは過保護でC#そこまで言うことかよってことだろ
0068デフォルトの名無しさん2014/09/25(木) 22:22:50.69ID:6btel42h
みんな有償版のVS使ってないのかな?
VSのコード分析機能は基本的にコンパイル語のILに対して静的コード解析をかけるツールだよ
解析対象になった時点で、元のソースがVBかC#かという情報は失われていて、
(発生箇所示すためのデバッグシンボル情報残ってるから完全に同じとは言えないけど)
たとえF#で書こうとも同じバイトコード吐く限り同じ警告が出るはず
0069デフォルトの名無しさん2014/09/25(木) 22:55:13.44ID:BRBG9Rns
いや、VBのWithEventsフィールドはvirtualなプロパティにコンパイルされて
C#のフィールドとはIL的に全く別物だから警告が出るのですが
0070デフォルトの名無しさん2014/09/26(金) 02:02:16.57ID:h5xYqq51
>>69
横から、マジか!
ありがとう、はじめて知った
0071デフォルトの名無しさん2014/09/26(金) 06:54:36.80ID:JX/CLN+N
イメージとしてはこんな感じ

■VB
Public Class A
 Friend WithEvents Label1 As Label

Public Class B
 Inherits A
 Private Sub Label1_Loaded() Handles Label1.Loaded

■C#
private class B : A
{
 internal override Label Label1
 {
  set
  {
   Label1.Loaded -= Label1_Loaded;
   base.Label1 = value;
   Label1.Loaded += Label1_Loaded;
  }
 }
}

警告を出したくなかったらNotInheritableかx:FieldModifier="Private"でいいのかな?
0072デフォルトの名無しさん2014/09/26(金) 23:44:53.43ID:/G5WDaUR
もう.NETにVBいらんだろ、そのコストをWPFに注いでくれよMS
VBはVBAだけでええんや・・・
0073デフォルトの名無しさん2014/09/26(金) 23:47:18.50ID:Syn8n5Wz
VB6系のVBA, VBSを資産として管理しないといけないから
VB.NETみたいな似て非なるものって正直困る
0074デフォルトの名無しさん2014/09/27(土) 00:58:36.36ID:+W5oEGhJ
VBとC#なんか大して違わないんだからディスコンにしろとは思うな。
F#暗い違うならまだ残す価値もあろうかと思うが
0075デフォルトの名無しさん2014/09/27(土) 03:00:56.10ID:jYunIRKZ
on error goto next なコードが多いんだろ色んな意味で
0076デフォルトの名無しさん2014/09/29(月) 13:36:19.08ID:WJqfJJMH
>>74
本当そうなんだよな。
Native .NETもC#だけだしVB.NETの存在意義がわかんないよね

VB.NET残すならいい加減OfficeにVB.NET for Application実装しろよな
0077デフォルトの名無しさん2014/09/29(月) 17:30:47.92ID:csnFvbxb
officeのvbaは今後実行オンリーにして.netに移行して欲しい
0078デフォルトの名無しさん2014/09/29(月) 21:33:07.25ID:VGe8V2tz
マクロがVB.NETだと、それはそれで重そうな気もするがの。
個人的にはpythonライクな言語が乗っかれば嬉しいが。
0079デフォルトの名無しさん2014/09/29(月) 23:19:07.74ID:Ie/s9Uq2
んじゃF#だな
0080デフォルトの名無しさん2014/09/30(火) 01:12:30.43ID:02iu1aKE
言語は現状のままで良いけど、いい加減エディタだけはVSと同等にしてくれと…
なんでソッチまでいつまでもVB6相当なのかと
0081デフォルトの名無しさん2014/09/30(火) 10:15:35.36ID:WBCRDKKS
エディタがVS相当になったら今度はWPF糞重すぎVB6相当でいいんだよって言うんでしょ
0082デフォルトの名無しさん2014/10/05(日) 08:52:51.40ID:JGc2UVUV
ここ、質問しても大丈夫ですか?
スレ違いならすいません。

C#でWPF開発しています。
Frameworkは4.0です。

UserControlを継承した自作クラス(MyControl)内でRoutedEventをBubbleでRaiseしたいのですが、利用側のXAML(MainWindow.xaml)で呼び出す際
にXamlParseExceptionが発生してしまいます。
デバッガでエラーの詳細を表示するとInnerExceptionに「オブジェクトがターゲットの型と一致しません。」というメッセージが出ているようです。

MyControlの実装は下記のようになります。

public static readonly RoutedEvent MyControlTouchEvent =
EventManager.RegisterRoutedEvent("MyControlTouch", RoutingStrategy.Bubble, typeof(RoutedEventArgs), typeof(MyControl));

public event RoutedEventHandler TaskBarGrab
{
add { base.AddHandler(MyControl.MyControlTouchEvent, value); }
remove { base.RemoveHandler(MyControl.MyControlTouchEvent, value); }
}

private void MyControlGrid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
RoutedEventArgs newEventArgs = new RoutedEventArgs(MyControl.MyControlTouchEvent);
RaiseEvent(newEventArgs);
}

わかる方がいらっしゃいましたら、ご教示ください。
0083デフォルトの名無しさん2014/10/05(日) 13:02:06.87ID:fqPBGj5U
>>82
この情報から読み取れる範囲の実装を手元で試してみたが、何の問題もなく動くぞ

再現するソリューションごとzipにでも固めてうpろだに置いたら?
0084デフォルトの名無しさん2014/10/05(日) 13:06:22.67ID:cZeU51UR
TaskBarGrabのサブスクライバー側がダメなんだろうとは思うが
0085デフォルトの名無しさん2014/10/05(日) 13:23:05.24ID:fqPBGj5U
なぜか添付イベントにできない、という話なら
public static readonly RoutedEvent MyControlTouchEvent =
EventManager.RegisterRoutedEvent("MyControlTouch", RoutingStrategy.Bubble, typeof(RoutedEventHandler/* コレ*/), typeof(MyControl));

だけ直すといいという話だが、そういう話なのかがわからん
0086デフォルトの名無しさん2014/10/05(日) 13:32:51.48ID:fqPBGj5U
>>82
http://ideone.com/OyjjrI
こう実装してエラー出るなら、使う側がなんかおかしな事をしている
0087822014/10/05(日) 22:30:23.86ID:JGc2UVUV
>>83-86
ご回答ありがとうございました。
教えて頂いた内容でトライしてみます。
0088822014/10/05(日) 23:14:07.58ID:JGc2UVUV
>>83-86
82です。
上記の質問の件ですが、解決しました。
>>85さんと>>86さんの指摘通り、RegisterRoutedEventの第3引数をRoutedEventArgsからRoutedEventHandler
に変えると正常に動作するようになりました。

皆様どうもありがとうございました。
0089デフォルトの名無しさん2014/10/06(月) 07:27:31.12ID:zfRIxHo4
>>82
この手のParseExceptionなら静的なコードの結びつけで出るはずでメソッドの定義間違いが基本的に原因ってことかね。
けどコンパイル時になんで弾けないんだろう
0090デフォルトの名無しさん2014/10/13(月) 20:54:36.64ID:kcgyXwLD
DataGridの列をBindingした時ってXamlにDataGridColumnsがないからCellTemplate適用できないんだけどどうすればいい?
StackOverFlowとかみてもXaml側で列定義があること前提の説明しかないんだけど
0091デフォルトの名無しさん2014/10/13(月) 21:37:29.32ID:VpLEezN1
>>90
DataGrid コントロール内で自動生成される列をカスタマイズする
ttp://msdn.microsoft.com/ja-jp/library/cc903950(v=vs.95).aspx

WPFのDataGridについて質問
ttps://social.msdn.microsoft.com:443/Forums/ja-JP/48b27166-64ac-4a83-a13a-c03106421c72/wpfdatagrid?forum=wpfja
0092デフォルトの名無しさん2014/10/19(日) 04:14:51.93ID:SF+BcaTz
ConvertTaiju呼び出しはかなり重い処理なので、タブBが選択されている時だけPerson変更によって実行させたいです。そもそも非表示になっているタブの中のBindingを取得させたくないです。
<TabControl>
<TabItem Header="タブA" />中身省略
<TabItem Header="タブB" DataContext="{Binding Person}">
<TextBlock Text="{Binding Taiju,Converter={StaticResource ConvertTaiju}}" />
</TabItem>
</TabControl>

一応さっき思いついた下記の方法で達成出来ます。TriggerでDataContextを変えます。
選択されていなければ{Binding Taiju}は上位のDataContextから得ようとも見つからないためConvertTaijuは呼び出されません。
出力にSystem.Windows.Data Error: 40が出ます。もっとましな方法があれば教えて下さい。

<TabControl>
<TabItem Header="タブA" />中身省略
<TabItem Header="タブB">
<TabItem.Style>
<Style>
<Style.Triggers>
<Trigger Property="TabItem.IsSelected" Value="True">
<Setter Property="TabItem.DataContext" Value="{Binding Person}"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</TabItem.Style>
<TextBlock Text="{Binding Taiju,Converter={StaticResource ConvertTaiju}}" />
</TabItem>
</TabControl>
0093デフォルトの名無しさん2014/10/24(金) 14:18:54.83ID:1m6GjPES
IsEditable=TrueなComboBoxの動作について質問
TextBoxBase.TextChangedでテキスト変更イベントをキャッチしてるんだけど、Google日本語入力使用のWin8.1の方で動作がおかしい(下記)
解決方法はあるだろうか

Win7の場合は普通のTextBoxと同じく、変換中でもイベントがキャッチされてComboBox.Textも変更される
8.1の方では、変換中も確定後もイベントが起きずにTextも変更されない。IMEなしでの入力や全角スペース、BS、Deleteなんかをやると変更される

MS-IMEの場合はWin7,8.1ともに変換中はTextに変化なしで、変換候補確定後にTextも変わる
0094デフォルトの名無しさん2014/10/24(金) 14:23:42.04ID:IVVixABy
2013 C#です。
データ一覧画面からデータを選択して編集ダイアログを表示するときの、ComboBoxのBindingに関する質問です。

編集ダイアログでは、編集対象のデータを、this.ItemsSource = targetDataRow;として関連づけています。
このとき、編集ダイアログ上のComboBox cboMemberとtargetDataRow["memberCode"]をリンクさせたいのです。

ComboBoxに表示するmembersテーブル:
code char(4),
name char(10)

cboMemberは、membersテーブルの検索結果であるDataSetを以下のようにBindingしています。
<ComboBox x:Name="cboMember"
ItemsSource="{Binding}" DisplayMemberPath="name" SelectedValuePath="code"/>

cboMember.ItemsSource = memberDataSet.Tables[0].DefaultView;

やりたいのは、以下の二点です。
・ダイアログを開いたときに、memberCodeに対応するmembers.nameがcboMemberで選択されている
・cboMemberで選択を変更したとき、targetDataRowにその変更が適用される
0095デフォルトの名無しさん2014/10/24(金) 14:27:02.29ID:IVVixABy
訂正。

(誤) this.ItemsSource = targetDataRow;
(正) this.DtaContext = targetDataRow;
0096デフォルトの名無しさん2014/10/24(金) 14:39:53.87ID:ZY5NuSBS
>>93
IMEがTSFに対応してるかどうかで動作が変わるのは仕様と諦めた方が良いと思うよ
0097デフォルトの名無しさん2014/10/24(金) 14:46:35.09ID:1m6GjPES
>>96
調べてみたらGoogle日本語入力は8だとTSFになるのね
とりあえずTemplateから中のPART_EditableTextBoxを取得してやることで、無理矢理解決することにする
0098デフォルトの名無しさん2014/10/24(金) 16:25:19.68ID:IVVixABy
事故解決しました。

SelectedValue="{Binding Path=[memberCode]}"
を追加することでOKでした。
0099デフォルトの名無しさん2014/10/25(土) 14:13:11.11ID:iYWQL7fF
すでに別データをバインド中のDataGridで行・列・セル選択・編集時に別のカスタムコントロールの依存関係プロパティをバインドして通知時にコールバックしたい場合どうすればいいでしょうか。
TextBoxなどはKeyを定義してカスタムコントロールの依存関係プロパティにElementNameでバインドすれば反応するんですが・・・
0100デフォルトの名無しさん2014/10/25(土) 15:43:14.45ID:h2hjhqtZ
CollectionViewSource経由でバインドして,VM側でソース切り替えるってので解決できないかな?
0101デフォルトの名無しさん2014/10/26(日) 03:50:51.96ID:/PwbQhXV
>>100
すいません、もう少しだけ詳しく教えて頂けないでしょうか
0102デフォルトの名無しさん2014/10/26(日) 04:44:19.42ID:/dFVkeHL
そもそも、どうすればいいって一体なにがワカランの…?
別のソースに切り替えができない理由って…?
そもそもソース切り替えが思いつかないのか、それとも切り替えてるのに反応しないのか とか
どんな問題があるのか、なんにも書いてない。
0103デフォルトの名無しさん2014/11/13(木) 14:28:29.03ID:GjsigFAk
The Roadmap for WPF
http://blogs.msdn.com/b/dotnet/archive/2014/11/12/the-roadmap-for-wpf.aspx

やっとBlend作り直したらしい
0104デフォルトの名無しさん2014/11/13(木) 18:03:27.29ID:/cz1Xj6R
仮想化周りの最適化をもっと進めるって言ってるけど、ListBox上のListBoxとかも仮想化できるようになるんかね?
それなら最高なんだが
0105デフォルトの名無しさん2014/11/13(木) 18:21:37.09ID:R5NTSkRE
下のコメントが全てを物語ってるよなあ。
特に元wpfチームの人。まああんたもだろとは思うけど。
0106デフォルトの名無しさん2014/11/13(木) 18:33:12.11ID:1IhIdMPE
Scott BarnesってWPF is deadっていってた奴だな
0107デフォルトの名無しさん2014/11/13(木) 23:08:06.69ID:xQkRdx0g
今更かよw
何時までたっても用意されんからもう手書きでBehaviorもAction/TriggerもStoryboardも書けるようなったわwww
0108デフォルトの名無しさん2014/11/13(木) 23:16:54.72ID:dGj3ukNH
xaml部分は全部手打ちしてるから関係ないわ
0109デフォルトの名無しさん2014/11/14(金) 23:53:47.86ID:cYzSwTLu
WPFに少なからずまだ人手を割いてるということは新しいフレームワークは
開発してないってことかな
ちょっと残念

WPFは出てから10年近くたとうとしているのにコモンダイアログすら出せない欠陥品
いつまでこれで戦うのか?
0110デフォルトの名無しさん2014/11/15(土) 01:06:34.01ID:Ftn0TSDn
コモンダイアログならWindowsAPICodePack使えばいいじゃん
0111デフォルトの名無しさん2014/11/15(土) 01:10:39.03ID:J8TZuH/G
fontダイアログとか出せる?
0112デフォルトの名無しさん2014/11/15(土) 02:05:55.08ID:rkNEDIyx
Xamlエディタで行数表示と動的型のコード補完なんとかしてくれよ
0113デフォルトの名無しさん2014/11/19(水) 22:51:16.27ID:vXkl6GSD
なんでまだBlend分かれてるんだよ・・・
0114デフォルトの名無しさん2014/11/19(水) 22:58:55.03ID:g6yRyndh
WPFって結局は、xmlみたいなのを
手作業で編集しなくちゃいけないでしょ?
そんなの嫌だわ。
0115デフォルトの名無しさん2014/11/19(水) 23:23:18.07ID:z3yXCTNW
WPFは各種Panel組み合わせてざっくり配置できる作りになってるから手書きでも割合なんとかなる
最低限コントロールとパネルは把握する必要があるけど
0116デフォルトの名無しさん2014/11/19(水) 23:37:02.50ID:YrBXnAjB
Blendはまだ別れてるけど
VSのみでもなんとかなるくらい良くなってる
はよ結合してほしいけど
0117デフォルトの名無しさん2014/11/20(木) 00:03:17.00ID:LNsblCfN
>>114
つーかデザイナーでやる方が結構だるい。
編集した結果がすぐ表示してくれさえすればXAML直でいじる方がいいかなー
0118デフォルトの名無しさん2014/11/20(木) 00:18:05.53ID:+leAc8pX
Blendなんていらんよ
Xamlのカスタムコントロール実装しまくってれば嫌でも覚える
ぶっちゃけWPF難しいってやつは勉強不足なだけ、っつーか書いてねーだろってw
XamlはUIの見た目どうとでもできるからFormじゃ考えられない低工数でカスタマイズできる
Xamlは拡張マークアップ言語って理解してるやつが少なすぎる、ASPとなんらかわらんよ
ASPもビューエンジンが違うだけで最終的にHTMLにレンダリングされるだろ
WPFの場合はVisual Treeにレンダリングされるだけだから、そこ理解できればFormには戻れない
0119デフォルトの名無しさん2014/11/20(木) 00:30:12.35ID:mrnF6vLa
それだけにこういうイベントが発生するだろうなぁ…という予想が裏切られることが
たまにあってウザい。なんでこんな何度も来てんの(笑) みたいな
0120デフォルトの名無しさん2014/11/20(木) 00:55:12.58ID:ZQbrC+g+
デザイナーとの分業っていう理想が語られて久しいけど、
正直デザイナーにView書かせるとかなり辛いよね…

分業成功してる現場とか実在すんの?
0121デフォルトの名無しさん2014/11/20(木) 00:59:22.81ID:3ZbUK5K+
それが成功してたらWindows8も成功してたとおもうよ
0122デフォルトの名無しさん2014/11/20(木) 01:31:46.57ID:mrnF6vLa
XAMLまるで見ない人のは作業履歴そのものみたいなXAMLになってて
コピペしたからミスってんじゃんw みたいなのがあってたまに面白い
0123デフォルトの名無しさん2014/11/20(木) 08:24:44.96ID:ppCu/2/P
commandとcommandparameterさえ仕様書に書いておけば、デザイナーの人らにほぼ任せられるはずやが…
理論上では
0124デフォルトの名無しさん2014/11/20(木) 11:15:16.72ID:4pbMemBs
Blendが便利なところもあると思うけど生成されるXAML が気に入らないので結局手書きに戻るなど。
うまく使い分けできればいいんだろーなー
0125デフォルトの名無しさん2014/11/20(木) 15:25:10.21ID:EwXerdR3
>>114
> 手作業で編集しなくちゃいけないでしょ?
> そんなの嫌だわ。
なれると結構複雑なレイアウトでもさくさく作れるようになるよ。
0126デフォルトの名無しさん2014/11/20(木) 17:06:15.95ID:YzPn98xH
手作業でも十分やっていけるけど、GridはExcel風の支援が欲しいな
0127デフォルトの名無しさん2014/11/20(木) 17:32:13.70ID:r+IPtN/m
HTMLが辿ってきたような流れ
0128デフォルトの名無しさん2014/11/20(木) 19:35:30.17ID:KrbIl1YA
画面サイズ固定かつUI部品が絶対位置指定ならWPFでも簡単かつ正確にデザイナの意思を汲み取れるけど
スクリーンサイズが変わったり、ランドスケープ・ポートレートが変わったりした時に柔軟にUI部品の配置を自動構成しようとするとプログラマ的な知識と発想が不可欠。
完全な分業が成立する機会は極めて稀だろう。
0129デフォルトの名無しさん2014/11/20(木) 22:17:53.38ID:PdeJEG1m
今時のデザイナーならレスポンシブなものできなきゃ話にならんだろ
0130デフォルトの名無しさん2014/11/20(木) 22:22:36.20ID:hXnIjUet
話にならんデザイナー以外に会ったことが無い
0131デフォルトの名無しさん2014/11/20(木) 22:24:41.85ID:+leAc8pX
そもそもデザイナーにXaml覚えろってのが酷っつーか無理難題なんだよな、PGですらWinFormsから移行できない難民多数なのにw
あと疎結合っつってもVとMの話で凝ったデザインや複雑な機能実装しようとしたらコードビハインド避けられないからV・VMは密結合しちゃう
Behavior/Trigger/Actionだけじゃ無理、デザイナーとの分業云々はただのキャッチコピーでしかない
0132デフォルトの名無しさん2014/11/20(木) 22:50:07.59ID:hXnIjUet
MVVM(≒プロパティ+コマンド+インターフェイスによるビュー操作)で表せないV-VMの相互作用ってどんな粒度を想定しているのか逆に知りたい
0133デフォルトの名無しさん2014/11/21(金) 09:14:56.30ID:Yej2PQ/o
例えばDrag&DropはVにコーディングするべきだと思うわ
0134デフォルトの名無しさん2014/11/21(金) 10:09:33.44ID:qLCHZ6x8
>>128
> スクリーンサイズが変わったり、ランドスケープ・ポートレートが変わったりした時に柔軟にUI部品の配置を自動構成しようとするとプログラマ的な知識と発想が不可欠。

不可欠だけど、一旦わかってしまえばあとはサクサク作れるでしょ。
WPFのレイアウト機能とバインディングを知ってしまうと、Windows Form使うのが馬鹿らしくなる。
0135デフォルトの名無しさん2014/11/21(金) 10:54:51.93ID:XLOCwnD5
>>134
デザイナーに不可欠なんだぞ?
0136デフォルトの名無しさん2014/11/21(金) 11:38:48.94ID:qLCHZ6x8
>>135
> デザイナーに不可欠なんだぞ?

> スクリーンサイズが変わったり、ランドスケープ・ポートレートが変わったりした時に柔軟にUI部品の配置を自動構成しようとする

のにそれほどプログラマ的な発想が必要とは思えないけど、デザイナって職種の人は、
その程度もできない奴らばっかなの?
0137デフォルトの名無しさん2014/11/21(金) 12:14:29.07ID:CXhEo5PP
>>133
何でだよ
展開的なM側の処理やんけ
0138デフォルトの名無しさん2014/11/21(金) 12:17:50.14ID:5iaw/CMT
そういうのって能力の問題じゃないだろうがw
デザイナーという職種の人間達が、それを自分達の仕事の範疇だと
受け入れてくれるかどうかだ
誰だって余計な仕事を増やしたくはないわな
0139デフォルトの名無しさん2014/11/21(金) 12:29:26.70ID:QojeTjqo
>>137
Drag&Dropなんてエフェクトが派手なだけで処理の内容はコピーペーストと一緒だろ
コピペとして見せるかD&Dとして見せるかはあくまでVの仕事
0140デフォルトの名無しさん2014/11/21(金) 12:50:50.29ID:qLCHZ6x8
>>138
デザイナ側を説得できないのなら、プログラマがやればいいのに。
0141デフォルトの名無しさん2014/11/21(金) 12:52:40.74ID:hy3lrdl+
>>139
つーてもドラッグしてる場所によってカーソルやドラッグ出来るかの表示をマークしたいなどはVMの中の値知らなきゃ出来んだろ。

いろんな宗派あると思うが自分はVMはそのビューに関するロジックを一手に引き受けてビュー側はバカなままにしてく派なので、その場合はドラッグドロップもVM主体になること多そう。
0142デフォルトの名無しさん2014/11/21(金) 12:55:20.37ID:5iaw/CMT
>>140
なにを言ってるのかわからんがw、
プログラマーの土方仕事を手伝わされるのなんてまっぴらごめん、
ってのが平均的なデザイナー連中の偽らざる心境だろうな
0143デフォルトの名無しさん2014/11/21(金) 13:00:33.14ID:XLOCwnD5
俺がアスペすぎて>>134=136が矛盾してるようにしかみえんのだが、
だれか解説してくれ


>>128
柔軟にUI部品の配置を自動構成しようとするとプログラマ的な知識と発想が不可欠。

>>134
不可欠だけど、一旦わかってしまえばあとはサクサク作れるでしょ。

>>135
デザイナーに不可欠なんだぞ?

>>136
>柔軟にUI部品の配置を自動構成しようとする

のにそれほどプログラマ的な発想が必要とは思えないけど
0144デフォルトの名無しさん2014/11/21(金) 13:04:09.66ID:qLCHZ6x8
>>143
それほどごつい「プログラマ的発想」なんか必要ないってこと。少しは必要だけど。

で、読んでるとV全てをデザイナが作る的なこと言ってる感じなんだけど、みんなのとこもそうなの?
0145デフォルトの名無しさん2014/11/21(金) 13:22:51.33ID:QSbzssdP
そもそもデザイナーなんかいねえ(。-_-。)
0146デフォルトの名無しさん2014/11/21(金) 13:22:57.71ID:QqoeY8P5
今となっては自体遅れ感のある言い争いをしているね
0147デフォルトの名無しさん2014/11/21(金) 14:38:55.92ID:KkEqVgaz
昔、pg ≠ desiner
今、pg ≒ desiner
0148デフォルトの名無しさん2014/11/21(金) 16:33:13.28ID:8+ZPGGY3
desiner wwwwwwwwww
0149デフォルトの名無しさん2014/11/21(金) 17:16:37.36ID:KkEqVgaz
>>148
うっせー!gがぬけただけだろーがっ!;;
0150デフォルトの名無しさん2014/11/21(金) 17:23:40.59ID:8+ZPGGY3
馬鹿過ぎる
プログラマーにもデザイナーにも向いてないよ
0151デフォルトの名無しさん2014/11/21(金) 17:44:07.35ID:QqoeY8P5
スタイルのタイポに気づかずに「何で効かねえんだよカスが死ね」とか言ってそう
XAMLはまだエラーにしてくれるからいいですね
0152デフォルトの名無しさん2014/11/21(金) 18:28:42.52ID:9R4men3Q
>>141
できるだけVMにやらせたいのは俺も同じなんだが、いざ実装するとListViewやListそのものをVMに渡さない限り可也ハードだわ
それかビヘイビア作るかの選択だが、こねくり回した結果Vに実装するのが一番楽というのが俺の感想
0153デフォルトの名無しさん2014/11/21(金) 20:10:25.60ID:xRW4Ikjw
<ListView
 my:DnD.OnCopy="{Binding CopyCommand}"
 my:DnD.OnMove="{Binding MoveCommand}" />

って感じにコマンドをバインドしてデータオブジェクトを渡しつつCanExecuteとExecute呼ぶだけじゃないの?
インサーションマークとかそういうエフェクトはVMに諮る必要ないし
0154デフォルトの名無しさん2014/11/21(金) 22:14:41.40ID:+pbtUPQJ
>>152
そういうんではそっちの方が楽ならありだと思うよ。
自分はなるべくVM側でやるけどそれが難しいならコードビハインドでやればいいだけ。
宗教的にこっちでやらなきゃいけないからゴチャゴチャ作りこむのが一番バカだと思う。
0155デフォルトの名無しさん2014/11/21(金) 23:18:19.91ID:3da9QPwd
>>152
それはVMに持たせるデータ足りてないんじゃないの?
View側がマスターとして振る舞うデータとか本当に一握りだろ
0156デフォルトの名無しさん2014/11/22(土) 00:35:13.65ID:SUa4fXA8
>>155
データ取得するためと言うよりは例えば、
ListViewでDoubleClick時にCommand実行したい。
みたいな場合にビヘイビア作るよりVに書いたほうが楽ってことじゃない?
(DoubleClickならBlendのビヘイビアがあるけど、DoubleClickは一例として。)
0157デフォルトの名無しさん2014/11/22(土) 00:48:09.64ID:JDmceEw+
>>156
それこそビヘイビア作って手元に武器揃えておいたほうが楽じゃね?
よっぽど特殊な場合でないとコードビハインドにゴリゴリ書きたくはないなあ
0158デフォルトの名無しさん2014/11/22(土) 06:52:04.23ID:zdky++Ll
ビヘイビアでバインドすれば必然的にVMの実装が揃うので読みやすくなる
0159デフォルトの名無しさん2014/11/22(土) 09:25:27.20ID:y0OSjNC+
Windows store アプリ「ビヘイビア?なにそれ?」
0160デフォルトの名無しさん2014/11/22(土) 19:13:09.41ID:ylJJYgN6
VとVMとかVとCとかそろそろベストプラクティスまとめに入って欲しいねえ
何年同じ議論してんだまったく
0161デフォルトの名無しさん2014/11/22(土) 22:06:51.28ID:2osqXjYD
コントロールの拡張はビヘイビアが良さげに見えるけど
本筋はカスタムコントロールじゃないのかな?
Xamlもスッキリ書けるし
0162デフォルトの名無しさん2014/11/22(土) 22:15:53.34ID:zdky++Ll
何でUIElementやControlの共通機能にアクセスするのに一々派生しないといけないの
0163デフォルトの名無しさん2014/11/22(土) 23:05:43.90ID:jgrooAub
>>160
何がベストかは対象や使う人、宗教によって違うだろ。
自分的にはMVVMがしっくりくるけど。
0164デフォルトの名無しさん2014/11/23(日) 08:52:32.21ID:bZbGLs+j
今以上に再利用可能なパーツが増える方法が出てこればそっちに乗り換えるんだけどな
あとモデルももっと簡素にかけたらいいんだけね
0165デフォルトの名無しさん2014/11/23(日) 19:02:13.72ID:buNsl0xT
デザイナーにXAMLが書けるのなら、プログラマーな俺にデザインが出来ない理由はない
ということで最近は自分で全部作っております
0166デフォルトの名無しさん2014/11/23(日) 19:07:34.90ID:kwCUMG++
いや何百億ってプロジェクトの現場でもそうだから、そんなことでドヤられてもw
デザイナーっつっても海外みたいなセンスあるやつ一人も見たことないしね
開発者に至ってはデザインなんてどうでもいいってやつばっか
如何にデザインがエンドユーザーの体験や利便性にとって重要かってことをAppleが証明してくれてるのにまだ理解できないバカばっかだよね
業務システムにデザインなんて必要ないって・・・だからドカタって呼ばれんだよw
0167デフォルトの名無しさん2014/11/23(日) 19:20:37.21ID:u5wQpN3r
導線が練られてないシステムはイライラする
0168デフォルトの名無しさん2014/11/23(日) 19:38:47.69ID:YUK2B7tw
長文マジレスw
0169デフォルトの名無しさん2014/11/23(日) 20:06:42.94ID:buNsl0xT
なんか俺のちょっとした一言が触れてはいけないところに触れてしまったようですねwww
よほど痛い目を見たんですねwww
0170デフォルトの名無しさん2014/11/24(月) 17:08:38.23ID:oKFUOa0U
>>132
コードビハインドで書くかVMに書くかの違いだけでどっちにしろVとVMは切っても切り離せないでしょ
Vでリソース定義するVMの存在知らずに書ける?バインドするプロパティの存在知らずに書ける?
BehaviorやTriggerActionでVMに定義してもVで定義されているUIEelementが何か知らずにVを操作できる?
MVVM(MVC)ってのはV(UI)とM(ドメイン)を疎結合するだけでしょ、Vの分離コードに1行も記述しなくていいかわりにVM(C)が肥大化してしまう
MVVMってのは夢のようなアーキテクチャじゃないよ
0171デフォルトの名無しさん2014/11/24(月) 17:52:58.35ID:Fx9sxyxG
切り離せないのとごちゃ混ぜにするのは違うでしょ
あとBehaviorやTriggerActionは完全にV側のコンポーネント
0172デフォルトの名無しさん2014/11/24(月) 19:11:16.53ID:eoOnbfDY
>>170
つーても自分の中ではMVVM以上にいい感じに分離できてテストもしやすいもの思いつかんわ。
0173デフォルトの名無しさん2014/11/24(月) 22:44:37.72ID:oKFUOa0U
>>171
書き方悪かったかな、>>170で言いたいのはスタブとしてVM定義すれば書けるしテストもできるけど、でもそれだけだよね?って話
MVVMのいいところはFormみたいに直接Vを操作せず、バインドしたデータを変更するだけでVの表示を更新できることだけど
どっちにしろバイディングソース(型)がターゲットプロパティと一致しないと動かないでしょって話
じゃあV作る奴がVM作るか、VM作る奴がV作るしかないでしょってこと、分業できるのはVVM側とM側でしょって話
0174デフォルトの名無しさん2014/11/24(月) 23:45:42.13ID:lN0wg/lw
>>173
分業しないとしても、変更容易性担保する為にはV/VMの切り分けは必要でしょ
そこをごちゃまぜにするならFormと変わらん
0175デフォルトの名無しさん2014/11/25(火) 01:21:24.29ID:CI4igYKz
もう自作使ってる奴だらけだろうけど標準コントロール拡張して欲しいわ
昔はToolkit取り込んでいくもんだと思ってた
0176デフォルトの名無しさん2014/11/25(火) 01:35:16.52ID:9Nx+7pyK
そういう辺りはやる気ないの?って感じだわな
0177デフォルトの名無しさん2014/11/25(火) 08:01:20.52ID:1jwMJAuJ
やる気ねえんだよ
悟れ
あのロードマップから感じ取れ
察しろ
0178デフォルトの名無しさん2014/11/25(火) 11:08:46.24ID:S6K9qD6w
一カ所でしか使われないのに、VMに分離するのに何か意味があるんだろうかって思わない?
0179デフォルトの名無しさん2014/11/25(火) 13:28:27.13ID:Ad3NvSJC
>>178
VMにするのは疎結合やメンテナンスビリティを高めるためで、複数から使われるとか関係ないとは思わんの?
0180デフォルトの名無しさん2014/11/25(火) 14:29:56.90ID:S6K9qD6w
>>179
> VMにするのは疎結合やメンテナンスビリティを高めるためで、
Vに依存する(Vの機能を実現する)ためのVMの実装で、なおかつそれが一カ所でしか使われないとき、
VMにしても疎結合やメンテナンスビリティは高まらないと思います。
0181デフォルトの名無しさん2014/11/25(火) 15:30:10.56ID:FB0Qd6p3
一つのVMに4つのVと言う構成のソフトを作った時は重宝しました
動画ファイルの管理ソフトなんだが、モード切り替えの処理が最小で済んだし
ファイル操作のコマンドも共有化出来て大分助かった

閑古鳥が鳴いているんで宜しければ見に来てください
http://www7b.biglobe.ne.jp/~megatherium/
0182デフォルトの名無しさん2014/11/25(火) 15:38:55.93ID:uX0WHp+A
>>181
すごいなー
やり始めたばかりだから個人的にWPFの事をskypeなんかで教えて貰いたいわ
というかなってください!
0183デフォルトの名無しさん2014/11/25(火) 18:17:07.96ID:Tsd4ayeq
>>180
Vに本当にべったりな処理をVMに書いているのが間違い
Vにべったりなら、素直にVのコードヒハインドに書くべき

VのボタンClickがComboBoxのSelectionChangeに変わっても
困らないようにする為の存在としてVMを書くのが普通
参照される箇所の数は関係ない
0184デフォルトの名無しさん2014/11/25(火) 18:33:59.11ID:LpUSZ3vr
そりゃ鳴くだろうなぁ…ってソフトだな。ピンとくる機能がなんもないもん
0185デフォルトの名無しさん2014/11/25(火) 18:34:51.77ID:S6K9qD6w
>>183
> VのボタンClickがComboBoxのSelectionChangeに変わっても
> 困らないようにする為の存在としてVMを書くのが普通
それ、君の「普通」だよね。

ボタンClickがComboBoxのSelectionChangeに変わることなんて経験無いけど、
もし変わったとしても、XAMLの方をちょちょっと変えればいいだけでしょ。

> 参照される箇所の数は関係ない
いや、関係あるね。
>>181のようなケースでは処理の共通化が図れ、VMが不特定多数のVに対して機能を提供するという
メタファーがしっくりくるが、一カ所でしか使われない処理にVMを使うのは、不要な複雑さだと思うよ。

「VMはVと独立して機能(I/F)を提供するのみ」とかいう幻想に酔ってるんじゃないの?
0186デフォルトの名無しさん2014/11/25(火) 18:41:27.80ID:Tsd4ayeq
>>185
Vに実装べったり書いて、XAMLでちょちょっと変えればいいだけに出来るならそれでいいんじゃね
それが難しいから、外見と振る舞いの分離できるWPFが出てきたんでしょ

それが不要な複雑さと言えるなら、仕様変更とか少なそうな良い環境だなという感想しかない

>「VMはVと独立して機能(I/F)を提供するのみ」とかいう幻想に酔ってるんじゃないの?
そもそもその幻想なるものが間違ってないか?
VMはVの状態ストア兼インターフェイスに過ぎないだろ
0187デフォルトの名無しさん2014/11/25(火) 18:41:31.11ID:gF/FuSsK
自分は今のスマホ案件でもほぼ全ての画面でMVVM採用して、ある画面の動きを抽象的にかたどるVMとコントロールの結びつけやレイアウトを司るViewを分離できて開発生産性においてもテストにおいても重宝してるけどね。

まあ君が必要ないってならひつようないんじゃない?君の中では。
0188デフォルトの名無しさん2014/11/25(火) 18:47:23.62ID:97nZu1i9
>>183
その例だとコードビハインドでイベントハンドラを共有したり、
イベントハンドラから共通のメソッドを呼べばいいだけだよね
あまり良い例じゃないと思う
0189デフォルトの名無しさん2014/11/25(火) 18:51:39.13ID:9ZqYoo9x
Prismの思想ってもしかしてWindow毎にプロジェクト作るんかな
橋渡しやMEFなんかのサンプルを見てるがプロジェクト分けにする粒度がかなり細かい
0190デフォルトの名無しさん2014/11/25(火) 18:55:09.18ID:Tsd4ayeq
>>188
共通のメソッド呼ぶにしても、その実行時トリガとかマスターデータとする値とかの部分は
コントロール依存になっちゃって辛いでしょ。もうちょっと良い例があればいいとは思うけど。

>>189
画面領域ごとに作って差し替え可能にするのがCompositeAppの思想
安直にやるならUserControl単位で分ける
0191デフォルトの名無しさん2014/11/25(火) 19:04:36.16ID:9ZqYoo9x
だとすると橋渡しの為のプロジェクトなんてのもあるし
中規模程度で数百プロジェクトが一つのソリューションに入るのか
あれ?そうなるとモデルはどうなってシェアしてんだろ
一カ所に集める事になるのかな?
0192デフォルトの名無しさん2014/11/25(火) 19:14:03.03ID:Tsd4ayeq
>>191
あくまで一例だけど、共通部品プロジェクト1つとShellとその他の三種類がポピュラーじゃね。
V-VM-Mっていう機能単位でプロジェクトを切ってて、
Model同士はEventAggregator(Pub-Subのアレ)を経由して相互にメッセージ送りあうみたいな。
細かい部品じゃなくて、単独で存在しても意味が分かるレベルの画面ごとにプロジェクト分ける感じで。
0193デフォルトの名無しさん2014/11/25(火) 19:15:16.83ID:l+O8wkw2
UnityとかのDIフレームワークを使って注入するんだろ
モデルが実際にどこに実装されてるかはV+VMのレベルでは感知しない
0194デフォルトの名無しさん2014/11/25(火) 19:15:52.83ID:Tsd4ayeq
>>192
>V-VM-Mっていう機能単位でプロジェクトを切ってて、
V-VM-Mのセットによる最低限の機能を実現できる単位でプロジェクトを切ってて、
の間違い
0195デフォルトの名無しさん2014/11/25(火) 19:35:05.20ID:LpUSZ3vr
そろそろジハードはもういいんじゃないかね。シーア派ガー シーア派ガー ってもう分かったっていう
0196デフォルトの名無しさん2014/11/25(火) 19:38:41.71ID:9ZqYoo9x
答えの半分もわかってないような状況なのでまだまだ勉強がたりないっぽいなぁ

モデル同士の通信とVとVMはモデルを感知しないというのが気になった
後、VMよりのモデルとかDBとよりもモデルで中身が違ってきそうなんだけど
識者的にはそんなことないのかな?

なんかこんがらがってきた
もう少しサンプルを追って手を動かしてみる
サンクス
0197デフォルトの名無しさん2014/11/25(火) 21:56:53.39ID:s4XMA/8k
EventAggregatorは便利?
サービスロケーターあればいいとおもってたけど、確かに今作ってるやつで、あるイベントを取るためにインスタンスを引き回してるのとかあって、オブジェクトの階層とイベントの配信を分離できたらいいかとも思い、まさにそういうところで使うもの?
0198デフォルトの名無しさん2014/11/25(火) 22:01:32.20ID:8ektkpGa
結構読んでて面白いのでこの調子でしばらく続けたまえ
0199デフォルトの名無しさん2014/11/26(水) 09:06:29.26ID:xl2VyM5S
今のプロジェクトもそうだけど、結局MVVMって理想を追い求めすぎて実装が追いつかないって現実に枚挙に遑がない
有名企業のものすごい予算のプロジェクトでね
なぜこうなるのか?やっぱりMSがWPFの足回りちゃんと用意してないからだろって結論にならざるを得ない
0200デフォルトの名無しさん2014/11/26(水) 09:43:39.63ID:QTl1+1Rv
>>199
例えば?で、それがMSが足回り用意してないのに絡めて是非。
0201デフォルトの名無しさん2014/11/26(水) 10:15:52.50ID:FixWhtAp
>>186
> Vに実装べったり書いて、
「べったり」は書かないけど。

> XAMLでちょちょっと変えればいいだけに出来るならそれでいいんじゃね
> それが難しいから、外見と振る舞いの分離できるWPFが出てきたんでしょ
だから、一カ所からしか呼ばれないような処理のことを言ってるんだけど。
それがちょっと変えたりするのがなぜ難しいのか、理解できない。

「外見と振る舞いの分離できるWPF」を実現するのは何もVMだけじゃなくて、
双方向バインディングというのも大きな要素。
で、双方向バインディングの機構はVMとは直接関係ないよね。

> それが不要な複雑さと言えるなら、仕様変更とか少なそうな良い環境だなという感想しかない
あくまでも「一カ所からしか呼ばれないような処理」の話だよ?

> そもそもその幻想なるものが間違ってないか?
別にそう思ってないのならいいよ。
0202デフォルトの名無しさん2014/11/26(水) 10:31:28.19ID:FixWhtAp
>>190
> 共通のメソッド呼ぶにしても、その実行時トリガとかマスターデータとする値とかの部分は
> コントロール依存になっちゃって辛いでしょ。
うーん、これがよくわからんのだよなぁ。何が辛いの?

俺がよくやるパターンは、あるModel(ビジネスロジックModel)が提供するデータソースを
WindowのDataContextにバインドしたり、ComboBoxにバインドしたり、Gridにバインドしたりする。

で、何かのトリガーで、そのModelが提供するAPIを呼び出す。
そのModelは画面内容と双方向データバインドしてるので、画面とやりとりする必要はないし、
画面の内容をModelに伝えるコードも必要ない。

ここにViewModelの入る余地ある?
0203デフォルトの名無しさん2014/11/26(水) 11:06:08.52ID:xqaCqe/Q
そもそもコード中に「一カ所からしか呼ばれないような処理」が存在しているのがバグ
あらゆる処理には単体テストが用意されてるはずだから、本番とテストの2回は呼ばれる
0204デフォルトの名無しさん2014/11/26(水) 11:27:28.83ID:FixWhtAp
>>203
> そもそもコード中に「一カ所からしか呼ばれないような処理」が存在しているのがバグ
> あらゆる処理には単体テストが用意されてるはずだから、本番とテストの2回は呼ばれる
Model(ビジネスロジックModel)のUnitTestはもちろんやるよ。

「一カ所からしか呼ばれないような処理」というのは、イベントハンドラの内容。
0205デフォルトの名無しさん2014/11/26(水) 11:32:22.42ID:FixWhtAp
データベースを操作するアプリケーションの場合、トランザクションの開始と終了は画面クラスで
やってるんだけど、ViewModel派はどこでやるの?
ViewModelでやると、UnitTest辛くない?(データを戻しづらいという意味で)
というか、ViewModelのUnitTestはやらないのかな?
0206デフォルトの名無しさん2014/11/26(水) 11:34:39.27ID:1fVYxz3D
VMじゃなくてMに押し込んでるのでなんとも言えない
0207デフォルトの名無しさん2014/11/26(水) 11:38:31.66ID:FixWhtAp
>>206
> VMじゃなくてMに押し込んでるのでなんとも言えない
トランザクションの開始と終了を?
それこそMのUnitTest辛くない?
0208デフォルトの名無しさん2014/11/26(水) 11:53:01.14ID:FixWhtAp
俺はViewModelなんか必要ない、MVVMとか糞みたいなことを言いたいわけじゃなくて、
画面:処理(の塊)が1:多とか多:1とかはメリットがあることは理解してる。

ただ、ある画面のあるイベントハンドラでしか行わない処理(コード)を、VMに委譲するのに
何のメリットがあるのかなって思ってるわけ。
0209デフォルトの名無しさん2014/11/26(水) 12:20:13.82ID:/DadxvyL
どうでもいいけどIDかっこいいな
0210デフォルトの名無しさん2014/11/26(水) 13:03:31.55ID:CGqrvh0J
MVVMは処理を分割する仕組みなんだからお前が必要ないと思うならいいんじゃねーの。
俺だったらそのトランザクションはモデルに組み込むかモデルを呼び出す関数として、VMからはそのどちらかを叩く。Vは本当に馬鹿なコマンドを叩くだけとデータを表示するだけのもの。
0211デフォルトの名無しさん2014/11/26(水) 13:17:08.72ID:FixWhtAp
>>210
> MVVMは処理を分割する仕組みなんだからお前が必要ないと思うならいいんじゃねーの。
「MとVとそれをつなぐもの」という概念は、俺もどんなアプリでもそうするしWPFでもそうしてる。
ただ、ViewModelを使うとしたときに、一カ所でしか使われないものをViewModelに委譲するって
ただ単に問題を複雑にしてるだけなんじゃないのっていう疑問がある。

>>179では、そうすることによって結合度(何と何の?)が下がり、メンテナンスビリティが上がると
いうことだけど、俺は全くそうは思わない。

ちなみに、なんでそんな疑問がわいたかというと、MVVMの解説記事をググったとき、そんな
感じのページが多かったから。
0212デフォルトの名無しさん2014/11/26(水) 13:28:08.25ID:FixWhtAp
>>210
> 俺だったらそのトランザクションはモデルに組み込むかモデルを呼び出す関数として、VMからはそのどちらかを叩く。
これが俺に言わせると、余計な複雑化なんだよ。

V -> VM -> SomeClass.Update() -> Model
で、
SomeClass.Update() {
 beginTransaction();
 model.Update();
 commitTransaction();
}
ってやるってことでしょ?

V.SomeEventHandler() {
 beginTransaction();
 model.Update();
 commitTransaction();
}
でいいじゃない。
0213デフォルトの名無しさん2014/11/26(水) 13:43:56.31ID:nlUVLq9e
おまえらいつまで宗教論争続けてるんだよw
0214デフォルトの名無しさん2014/11/26(水) 14:12:16.76ID:1fVYxz3D
2000年かけても終わらないことだけは確か
0215デフォルトの名無しさん2014/11/26(水) 14:13:49.25ID:1fVYxz3D
だいたい
好きにしてろよ→俺に言わせると→好きに
してろよ→俺に言わせると
じゃ制御構造壊れてるぞ
バクがあるこいつら
0216デフォルトの名無しさん2014/11/26(水) 14:28:20.04ID:FixWhtAp
まあ、
> V.SomeEventHandler() {
> beginTransaction();
> model.Update();
> commitTransaction();
>}
で、Viewが直接Modelのメソッドを呼ぶべきではないとかいうべき論になってしまうと、それはもう
宗教論争だから議論する意味はないね。

ただ俺の浅いWPF歴からすると、Modelが提供するデータソースを画面と双方向バインディングする
のが最も実装コストが低いので、ViewとModelは密結合にならざるを得ない。

貧弱なVSのMVVMサポートを補うライブラリもあるみたいなんだけど、
『WPF MVVM初心者がみたMVVMライブラリが提供するもの』
http://tocsworld.wordpress.com/2014/06/13/wpf-mvvm%E5%88%9D%E5%BF%83%E8%80%85%E3%81%8C%E3%81%BF%E3%81%9Fmvvm%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%81%8C%E6%8F%90%E4%BE%9B%E3%81%99%E3%82%8B%E3%82%82%E3%81%AE/
この学習コストを払ってでもMVVMにすべきなのかどうかがわからないという現状です。
0217デフォルトの名無しさん2014/11/26(水) 15:46:24.29ID:RXuBOhEL
もうハマスは休め
0218デフォルトの名無しさん2014/11/26(水) 15:57:34.92ID:PiYLX3QN
>>216
だからさ、お前のしょぼいModelとViewは分離する必要がないレベルのしょぼいものなんだから好きにしろよ?
お兄ちゃん達は僕にはわからないちゃんとした仕事をしてるから必要に応じて分離する構造を採用するの。
分かった?
0219デフォルトの名無しさん2014/11/26(水) 16:45:01.22ID:FixWhtAp
>>218
しょぼくないModelとViewなら分離するメリットもあるんだろうってことはわかってるさ。

ところで、あなたの場合、データベースを使うアプリの場合、トランザクション処理はどこでやってます?
0220デフォルトの名無しさん2014/11/26(水) 18:26:00.41ID:iOY6xui3
Vに云々はMVVMフレームワーク使わないでも済む規模の話だという事が分かったので解決ですね
0221デフォルトの名無しさん2014/11/26(水) 19:36:06.63ID:1fVYxz3D
なんか、1から10までフレームワークのポリシーに従わないといけない(気が済まない)みたいな、
強迫性障害の患者っぽいのが増えた
0222デフォルトの名無しさん2014/11/26(水) 19:40:47.90ID:5G4Bbp7I
読んでないけどMVVM否定派1名が個人的事情をさも一般論のように語ってるだけなんじゃないの
0223デフォルトの名無しさん2014/11/26(水) 19:45:14.99ID:JR4oGybM
wpf初期の設計思想だと、Vにもプログラムを置く前提だったはずだが
いつの間にかVにはコード書かないのが当然って風潮になったのはどうもイカンね
まあ、件の患者さんはそれ以前の話ですが
0224デフォルトの名無しさん2014/11/26(水) 21:30:54.72ID:ry/kyO8K
>>221
なんで臨機応変にできないのかねー(´・_・`)
0225デフォルトの名無しさん2014/11/26(水) 23:42:21.21ID:xl2VyM5S
っつーかVの分離コードにコードビハインドしなくても、結局複雑なコントロール系はVMの中でReflectionして参照したVにUIElementやFrameworkElement追加したりStyleSelector切り替えたりするから、厳密にいえばコードビハインド無しって不可能だよ
0226デフォルトの名無しさん2014/11/26(水) 23:49:37.18ID:5G4Bbp7I
そんなクソみたいなことするんだったら普通にコードビハインド使うよ
0227デフォルトの名無しさん2014/11/26(水) 23:56:32.57ID:c5anpaBr
>>199で大層なこと言ってやってることは>>225か。
まじありえんわ
0228デフォルトの名無しさん2014/11/27(木) 00:27:00.73ID:HxVOMPaJ
なんかMVVM以前にMも分かれてなさそうな人いない?
0229デフォルトの名無しさん2014/11/27(木) 00:32:18.10ID:zG8PHGwL
MVCでもいいじゃないか
にんげんだもの

          みつを
0230デフォルトの名無しさん2014/11/27(木) 00:48:54.85ID:40kBKy0w
「神よ、お前はおれにどんなパターンを望む!?」

「あるがままにあれ
MVVMであれMVCであれ、お前のコード自体が
職としてのプログラマーに相応しいものになるだろう
たとえそれが開発者の苦しみであっても救いであっても
望むままを行え 選ばれし者よ」
0231デフォルトの名無しさん2014/11/27(木) 01:01:29.05ID:AyF9dhDB
理想だの幻想だの言うヤツほど、そもそもフレームワークとかUIアーキテクチャを理解してない
>>225みたいなのが典型で、ViewとViewModelの役割分担すら放棄しておいて、
そのくせ悪いのはフレームワーク側とか思想とか言い出す

標準Control足りないとか仮想化付近の挙動が微妙とか不満は確かにあるが、
>>225みたいな事をしておいて「理想を追い求めすぎて実装が追いつかない」とか
笑止千万すぎる
0232デフォルトの名無しさん2014/11/27(木) 01:45:35.61ID:jEc+RWal
え?
これってマジレス?

EverNoteに対する皮肉じゃないの?
0233デフォルトの名無しさん2014/11/27(木) 02:20:06.39ID:UC8SE9iH
困ったらもうV渡す。bセってにんげんbセもの
0234デフャHルトの名無しbウん2014/11/27(木) 03:19:51.68ID:X9aIAAiW
なんか批判してるやつって後出しジャンケンじゃないんだから、反論あるなら自分はどうしてるか書かないと説得力ないよ
0235デフォルトの名無しさん2014/11/27(木) 05:00:31.19ID:28wLimLT
>>234
こういう場では先に出したほうが負け
0236デフォルトの名無しさん2014/11/27(木) 06:36:33.64ID:SaiPAr3O
逆にどうやったらVMでリフレクションしてVを取るだのStyleSelectorを切り替えるだのの謎発想が出るのかが知りたい
0237デフォルトの名無しさん2014/11/27(木) 07:34:42.20ID:ZoBqTrPg
バインディング目的以外に使ってない俺には何を怒ってるのかさっぱりだ
0238デフォルトの名無しさん2014/11/27(木) 08:57:52.47ID:irZjfjLu
>>234
Vに対してアクション起こさせたいならその起点となるイベントなり値をVMが出してVが反応するだけ。
リフレクションで直弄るとかなんのために分けてるのかと小一時間。
0239デフォルトの名無しさん2014/11/27(木) 10:12:55.75ID:r+bsdp9/
結局MVVMに詳しい奴は誰もいなかったってオチか。
0240デフォルトの名無しさん2014/11/27(木) 14:34:29.72ID:EV0Yu6SL
同じく
Bindingくらいにしか使ってなくてスマンな
0241デフォルトの名無しさん2014/11/27(木) 15:29:43.57ID:jzYBO3Q2
>>219
VにもMにもトランザクションは書かない
XMLの定義ファイル(←これはウンコだから変えたいとは思う)に記述して
アスペクト指向で実際のコードに動的に編み込む
0242デフォルトの名無しさん2014/11/27(木) 17:11:51.73ID:jEc+RWal
Bindingをしっかり活用してれば十分でしょう

Bindingを使ってれば、VMに書くべき事は自然とVMに書くようになるし

コードで簡潔に書ける事までBehaviorを使ったりすると
XAMLがごちゃごちゃして逆に保守性が下がるよ
0243デフォルトの名無しさん2014/11/27(木) 18:39:57.00ID:xQ+hc8uv
いやXAMLの記述量は殆ど変わらないと思うよ?
0244デフォルトの名無しさん2014/11/28(金) 01:07:56.67ID:81UHxOcA
ストライプ柄(内側青、外側赤)のPolyline引きたいんですが、
太い赤線引いた後細い青線引く以外に実装方法ってありますか?

DropShadowEffectで似たようなことできるけど、これだと影の部分にMouseEnter飛ばなくて…
(スタイルとか書けば飛ぶんだろうけど、やり方がちんぷんかんぷん)
0245デフォルトの名無しさん2014/11/28(金) 10:15:05.39ID:olxTTeEH
>>241
> XMLの定義ファイル(←これはウンコだから変えたいとは思う)に記述して
> アスペクト指向で実際のコードに動的に編み込む
そのやり方が素晴らしいと思ってやってるのか、それともそうでもしないとトランザクション処理を入れられないのか。
0246デフォルトの名無しさん2014/11/28(金) 10:29:09.02ID:NLRHMM1H
>>241
そこまで可変にする必要があるの?
0247デフォルトの名無しさん2014/11/28(金) 13:23:36.15ID:q6k2pKLV
可変にする必要はあまりないけど
Vに実装するかMに実装するかという下らない議論よりはマシだと思う
0248デフォルトの名無しさん2014/11/28(金) 13:48:09.47ID:olxTTeEH
>>247
いずれにしてもどっかにDIするんだろうけど、実現方法はどうでもいい。特にオレオレ実装なら。
0249デフォルトの名無しさん2014/11/28(金) 13:52:05.22ID:olxTTeEH
>>247
> Vに実装するかMに実装するかという下らない議論よりはマシだと思う
Mに実装しようと思ってた人/していた人にとっては有益かもよ。
0250デフォルトの名無しさん2014/11/28(金) 19:20:58.95ID:OYKH5wBF
個人的にはDIするにしてもインターフェイス使ってMEFで十分だと思う
0251デフォルトの名無しさん2014/12/03(水) 22:25:07.78ID:mq79HQDG
WPF のロードマップ
http://blogs.msdn.com/b/shozoa/archive/2014/12/02/the-roadmap-for-wpf.aspx
0252デフォルトの名無しさん2014/12/03(水) 23:14:56.78ID:j+yTAGJB
2015でもblendは別物なんだね
はやく統合しる
0253デフォルトの名無しさん2014/12/03(水) 23:21:30.50ID:jV/2CiAX
Resourceで定義してあるControlTemplate・DataTemplate内ででConverterやDataTriggerが反応しない理由を誰か教えて・・・
0254デフォルトの名無しさん2014/12/03(水) 23:36:59.86ID:16uBC3Xh
とりあえずSnoopしとけ
0255デフォルトの名無しさん2014/12/05(金) 23:21:59.41ID:3HvtcmF2
ザムルのスレはここだけかね
0256デフォルトの名無しさん2014/12/05(金) 23:30:06.55ID:FHrEJZsP
カタカナで書くとモビルスーツっぽい
0257デフォルトの名無しさん2014/12/05(金) 23:39:52.50ID:5EtPU4zr
えっくすえーえむえる
0258デフォルトの名無しさん2014/12/06(土) 00:22:42.74ID:JO5y7K/X
ザレムに空目(´・_・`)
0259デフォルトの名無しさん2014/12/06(土) 16:32:05.01ID:rkxW+A3/
ザムル勉強したいんだけど、WPFかsilverlightかストアアプリの本しか売ってないんだよね。ザムルのリファレンスみたいいのでもいいんだけどそれもない。
(´・ω・`)
0260デフォルトの名無しさん2014/12/06(土) 16:55:44.37ID:J+Io2gEY
XAMLはWPFかsilverlightかストアアプリの画面を記述するDSLという立ち位置だし、独立した資料はそりゃないだろうな
WPFでOKなXAMLがストアアプリだとアウトだったりするし
0261デフォルトの名無しさん2014/12/07(日) 00:06:31.15ID:Zzop2ylY
TreeViewは反省するべきである
0262デフォルトの名無しさん2014/12/07(日) 00:11:43.24ID:MBowMBvf
>>261
わかる
0263デフォルトの名無しさん2014/12/07(日) 00:16:53.32ID:5CT1OZvc
どぅいできまぁす
0264デフォルトの名無しさん2014/12/07(日) 15:44:22.66ID:VB81vSGp
MVVMで階層的構造もこれでおっけ〜俺すげ〜的な感じだよな
0265デフォルトの名無しさん2014/12/11(木) 00:29:57.38ID:ylLwvZCk
なんでToolkitって有償コンポーネントの試用版みたいになってんの?
0266デフォルトの名無しさん2014/12/11(木) 00:34:41.05ID:ZX63Ctk0
MVVMだとさ、コンポーネントのClear()メソッドとか呼びたい場合、どう書けばいいんだろう?テキストボックスみたいな単純なやつなら、Textバインドして、Modelでstring.Empty入れてあげればいいんだろうけど。
0267デフォルトの名無しさん2014/12/11(木) 00:36:42.41ID:a/M3zwJ7
>>266
MVVMならほぼ全ての状態がVMにあるはずだから、そこクリアすればいいんじゃない
VMにも置かないレベルの状態をクリアしたいなら、
Messenger的なものをトリガーにしてViewを動かせば?
0268デフォルトの名無しさん2014/12/11(木) 00:41:32.21ID:ZX63Ctk0
>>267
???俺のザムルちからが足りないようだ。クリアしたい内部の状態をクラスにまとめて依存関係プロパティで公開しとけってこと?
後者はインタラクションとか使ってview上で処理しちゃえってことかな…?
検討違いも甚だしかったらごめん。
0269デフォルトの名無しさん2014/12/11(木) 00:50:30.46ID:a/M3zwJ7
>>268
1行目の意味がちょっと分からんが、言いたいことは、
そもそも厳密にMVVMで作ってるなら、Viewが状態のマスターである事はほぼ無いはず
画面上の状態のマスターであるVMから情報を削除すれば、
Binding経由でViewの情報はクリアされるはず

でも、実際そこまで詳細な部分までVMに持たせるのはナンセンスだし煩雑で、
Controlのメソッドを直接呼びたい時もあると思うから、
ユーザー定義イベントとかMessengerとかのBindingと同レベルで結合を切ってあるような
揮発性のトリガーをVM側から呼び出して、
それをListenしてるView側のコードビハインドなりビヘイビアなり
Eventキャッチした後のTriggerActionなりで、SomeControl.Clear()呼べば?

って感じ。
0270デフォルトの名無しさん2014/12/11(木) 00:58:47.14ID:ZX63Ctk0
おおお?
ちょこっとわからん言葉とかもあるので、理解できるように調べてみるよ。
まっとうな方法があることがわかっただけでもありがたい。ありがとう!
( ´ ω ` )ノ
0271デフォルトの名無しさん2014/12/11(木) 08:42:21.52ID:mNe9gq8O
方式はなんでもいいからとにかくVM起点に必要な時になんらかのイベント的なもの出して、それをビュー側で受けて必要な動作すればいいってだけ。
0272デフォルトの名無しさん2014/12/11(木) 08:56:59.40ID:a/M3zwJ7
>>271
そしてVMにイベント定義してVのコードビハインドでイベント登録するヤツが現れるまでテンプレ
0273デフォルトの名無しさん2014/12/11(木) 09:00:13.59ID:2LyM0kV6
実際それっぽっちならMessengerとか使わないで書くよ
馬鹿らしい
0274デフォルトの名無しさん2014/12/11(木) 09:01:13.78ID:2LyM0kV6
いや、馬鹿とは違うな
愚かの方がニュアンスとして正しい
0275デフォルトの名無しさん2014/12/11(木) 09:05:41.03ID:a/M3zwJ7
>>273
そういう奴がいつまでも居るからV-VM間の結合が切れない
実質MVVM前提のフレームワークなんだから理由が無ければ作法には従えよ…
0276デフォルトの名無しさん2014/12/11(木) 09:16:42.92ID:2LyM0kV6
結合を切るために生きてるわけじゃないんで
健康のために死ぬようなアホと一緒にしないでくれ
0277デフォルトの名無しさん2014/12/11(木) 09:17:48.08ID:2LyM0kV6
こういう金科玉条的クソムシがいると最高に雰囲気が悪くなる
0278デフォルトの名無しさん2014/12/11(木) 09:20:36.97ID:2LyM0kV6
この手の完全主義が不完全なTDDは無意味だとかくだらないことを言い出す
0279デフォルトの名無しさん2014/12/11(木) 09:27:28.40ID:mNe9gq8O
>>272
それなんか悪いのか?
ビューがシンでVMが全てコントロールできるなら手段はなんでもいいと思うけど。
作法に従った時の明確なメリットって何?
XAMLで全部記述できる以外。
0280デフォルトの名無しさん2014/12/11(木) 09:28:58.40ID:mNe9gq8O
>>275
VMがVに依存してなければ構わんだろ
0281デフォルトの名無しさん2014/12/11(木) 09:39:37.83ID:a/M3zwJ7
>>276
アホだのバカだの、そんなにストレス溜めてると早死すんぞ

>>279
手段はなんでもいいけど、Messenger的なものをわざわざ使わないメリットがないという話
フレームワーク備え付けを使ったり使わなかったりするのは実装側の混乱を招く
全部イベントで、MVVMインフラ使ってないというなら有りだが、そんな環境ほぼないでしょ

>>280
結合切れる安易な手段があるのに、良く分からないから使わないみたいなのは普通に困るぞ
0282デフォルトの名無しさん2014/12/11(木) 10:05:33.47ID:mNe9gq8O
>>281
Messenger的なものはフレームワークによってまちまちだからWPFで一つのフレームワークしか使わないってんなら良いけど他のも考えると使いづらいんだよね。
でそもそもMessengerを使うメリットとしては
1.より疎結合にできること
2.XAMLでの記述で完結することもできる
ってことで良い?

1.の疎結合は静的より動的で良いとか直に結合しないでいいってことだと思うけど、自分的には型が使えるナイスなやり方あるならそっちのほうがいいし、直につながらないことにこの場合どれだけのメリットあるかは疑問。循環参照にならないってのは良いかもだけど。
イベントアグリゲータ的なものは直につながらないことでメリット得られる場面多々ありそうだけど。
0283デフォルトの名無しさん2014/12/11(木) 10:24:59.47ID:E6q5DBcF
複雑なコントロールはカスタムコントロール化して、必要な処理を依存関係プロバティー経由で実行するってのも一つの方法かもね
0284デフォルトの名無しさん2014/12/11(木) 16:11:30.00ID:4YDQNeuU
>>282
> 循環参照にならないってのは良いかもだけど。
一番重要なのはこれでしょう
設計上の循環参照じゃなくて、実装上の循環参照という意味でね

VとVMの寿命が異なる場合、循環参照があるとメモリリークするので、何らかの対策が必要になるわけだけど
その中で、最もユーザーに負担の無い形の1つがWeakEvent

そして、WeakEventを手軽に扱えるようにしたのがMessenger
XAMLとの親和性はオマケみたいなものだよ

この利点をふまえた上でMessengerを使わないって判断なら、それはそれでアリ
他の方法はいくらでもあるしね
0285デフォルトの名無しさん2014/12/12(金) 16:21:08.75ID:qK4pyd2f
コードビハインドにcontrol.Clear()って書くだけのことなのに、MVVMってこんなおおごとになるのか。
0286デフォルトの名無しさん2014/12/12(金) 18:04:47.38ID:Kcc+ZLL6
だから人が寄り付かないんだお?
0287デフォルトの名無しさん2014/12/12(金) 18:19:30.28ID:6gZpkip4
>>285
ビジネスロジック内で「TimerでClear」という動作してたらどうやってClear呼ぶんスかねって所が問題なんだなあ
0288デフォルトの名無しさん2014/12/12(金) 18:32:17.73ID:Q0dXKlle
>「TimerでClear」という動作してたら

「なお、君の入力内容は自動的に消滅する」
ってやつ?
0289デフォルトの名無しさん2014/12/12(金) 18:35:11.13ID:6gZpkip4
>>288
そうね
あるいは、ネットワーク越しのどっかからClear要求が来た時にClearとか
0290デフォルトの名無しさん2014/12/12(金) 18:50:11.44ID:UGF1tSay
普通にイベントを使えばいいだけ

MVVM脳のせいで頭が麻痺してるのか?
0291デフォルトの名無しさん2014/12/12(金) 18:52:39.68ID:6gZpkip4
>>290
それでどうやって画面とビジネスロジック分離すんの?
0292デフォルトの名無しさん2014/12/12(金) 19:18:42.19ID:UGF1tSay
MVVMにおけるビジネスロジックは
MVVMでない場合のビジネスロジックより責務が広いんだよ

だから「MVVMにおけるビジネスロジック」は他の方法では「分離できない」が答えになるし、
MVVMを使わない人から見れば
「分離しようとしているのはビジネスロジックじゃねーよ」「ビジネスロジックは既に分離できている」
になる
0293デフォルトの名無しさん2014/12/12(金) 21:26:07.00ID:U0wh3Lf5
まあこんな風に頭が硬かったから
javascriptのMVVMフレームワークが出てくるまで
MVVMなんて閑古鳥だったのさ

え、今も?
そうだね^^
いつだって実用主義者が世の中を引っ張ってるよね
0294デフォルトの名無しさん2014/12/12(金) 22:03:32.72ID:Lr+MeQ2+
MVVMの意義はビューをシンにすることとVMをテスタブルにすることだと思うけどね。
イベントでつながったとしてもその辺は保たれるので、Weakじゃないデメリットが問題ないならイベントでも構わんでしょ
0295デフォルトの名無しさん2014/12/13(土) 00:36:33.10ID:K/SDaM39
なんつーかキミらの議論って言葉遊びの範疇だよね
0296デフォルトの名無しさん2014/12/13(土) 01:03:28.81ID:vyF2BbLt
単に内容が分かってないから言葉あそびのように聞こえるだけでしょ
0297デフォルトの名無しさん2014/12/15(月) 13:37:43.02ID:AtKnrGoa
>>291
> それでどうやって画面とビジネスロジック分離すんの?
ん、何で分離できてないなんて思うんだ?
0298デフォルトの名無しさん2014/12/15(月) 14:17:43.06ID:Uj35lJil
モデルとビューを分離し、ビューのイベント内でモデルのメソッドを呼ぶ
これならビューとモデルを分明確に離できる
0299デフォルトの名無しさん2014/12/15(月) 14:31:25.07ID:AtKnrGoa
>>298
つまんないよ
0300デフォルトの名無しさん2014/12/15(月) 16:40:06.11ID:Uj35lJil
>>299
なんで?Formsでも普通にやってるじゃん
0301デフォルトの名無しさん2014/12/15(月) 17:23:06.43ID:AtKnrGoa
>>300
なんだ、単にわかってないだけか
>>298だと単に役割を分割しただけで、「分離」はできていない
0302デフォルトの名無しさん2014/12/15(月) 20:00:18.20ID:Uj35lJil
>>301
なんで?まさか分離コード使わないことが分離とか言いださないよな
0303デフォルトの名無しさん2014/12/15(月) 20:04:14.79ID:1MwIPKbX
>>302
Modelの変更の影響がViewの実装に影響してるし、逆も然りでしょ
FormsでいうViewとModel間の結合の役割は、MVVMではViewModelとModelの結合だと思ったほうがいいよ
0304デフォルトの名無しさん2014/12/15(月) 20:18:50.73ID:JBQWSxKz
>>303
ViewModelはModelを抽象化する層じゃないよ
その「分離」はViewModelの目的じゃないし、そもそも、完全に分離できるケースは限られている

「分離」したいなら、ViewModelとModelの間にもう一つ層を挟むべきで、
ViewModelでやるべきじゃない

ViewModelはViewとModelのギャップを埋めることに徹するべき
0305デフォルトの名無しさん2014/12/15(月) 20:18:56.05ID:aer3P+Xr
VMがMのデータを右から左に流すだけの実装ならそうなるが
0306デフォルトの名無しさん2014/12/15(月) 20:25:24.85ID:+Z9zwLkJ
ここって「ぼくがかんがえたさいきょうのプログラミング法」のスレ?w
0307デフォルトの名無しさん2014/12/15(月) 20:26:05.87ID:1MwIPKbX
>>304
ViewModelがModelを抽象化する層じゃないのは、当然そうでしょ。
ViewModelはViewを抽象化するための層であって、Model…ロジックには基本的に影響しない。

MVVMで言うViewとModelの分離っていうのは
FrameworkElementクラスを継承したControl群とロジックが直接結びつかないという意味でしかない。
ViewModelとModelの間の層という表現はおかしくて、ViewとViewModelで画面を表現し、
それ以外の全てのロジックはModel層に属するんだから、そこに新しい層なんて必要ない
0308デフォルトの名無しさん2014/12/15(月) 20:35:17.51ID:Uj35lJil
>>303
はぁ?Modelの変更がViewに影響与えることはあっても、なぜViewの変更がModelに影響与えるのよ?
0309デフォルトの名無しさん2014/12/15(月) 20:42:50.30ID:1MwIPKbX
>>308
Viewの呼び出し単位が代わったらModelが公開してるI/Fの粒度が変わりうるというような意味で書いたが、
それ単純に設計がクソなだけだな。MVVM関係ないわ。
Modelに影響を与えうる系の所は忘れてくれ
0310デフォルトの名無しさん2014/12/15(月) 20:49:07.11ID:JBQWSxKz
>>307
> ViewModelとModelの間の層という表現はおかしくて、ViewとViewModelで画面を表現し、
> それ以外の全てのロジックはModel層に属するんだから、そこに新しい層なんて必要ない
これは同意
ViewModelでやる事じゃないという事を言いたかった

> MVVMで言うViewとModelの分離っていうのは
> FrameworkElementクラスを継承したControl群とロジックが直接結びつかないという意味でしかない
なんだ、それだけの意味だったのか

それだと「分離」による「Model変更時のViewへの影響」の排除はほとんどできていないと思う
もし改善があるなら、元のコードが汚いだけ

一方、「View変更時のModelへの影響」は元々ないので改善のしようが無い
「View変更の容易さ」は多少は良くなってるけど
0311デフォルトの名無しさん2014/12/15(月) 20:56:54.78ID:1MwIPKbX
>>310
>それだと「分離」による「Model変更時のViewへの影響」の排除はほとんどできていないと思う
>もし改善があるなら、元のコードが汚いだけ
Viewへの影響は排除できるでしょ。ModelがViewを一切関知しないんだから。
実際のControlクラス群と関係ない「抽象化された外見」であるViewModelとModelが結合し、
ViewModelとViewがBindingを介して緩くつながる事で、
具体的な外見である「View」とロジック部分である「Model」が分離されるでしょ
0312デフォルトの名無しさん2014/12/15(月) 20:57:44.45ID:aer3P+Xr
Modelの意味が錯綜していそう

というかVMより下のWPFと直接関係ない層の話は余所でやれ
0313デフォルトの名無しさん2014/12/15(月) 21:11:16.68ID:1MwIPKbX
>>312
Modelの意味ってViewとViewModel以外 以上の意味は存在しない
って所まではそろそろ一般的に知られてるんじゃないの?

VM以下の話はしてるつもりないんだが
0314デフォルトの名無しさん2014/12/15(月) 21:16:12.11ID:JBQWSxKz
>>311
言い方が悪かったね

Model変更時の
Viewの変更量(VM無しの場合)≒Viewの変更量+ViewModelの変更量(VMありの場合)
になるので、メリットとは言えない、と言いたかった

> Viewへの影響は排除できるでしょ
Modelが変更されると必要な表示項目が増えたりするので、排除できてるってほどでもないと思う

> 実際のControlクラス群と関係ない「抽象化された外見」であるViewModelとModelが結合し、
FrameworkElementの継承階層自体が既に「抽象化された外見」なんだよ
具体的な外見はControlTemplateによって提供される

だから、ViewModelを挟んだところで、影響が大きく減るわけじゃない
0315デフォルトの名無しさん2014/12/15(月) 21:22:17.84ID:aer3P+Xr
>>313
思うところはあるけど落としどころの見えない抽象論をこれ以上混乱させる気はないので好きにやってください
0316デフォルトの名無しさん2014/12/15(月) 21:29:59.44ID:1MwIPKbX
>>314
>Viewの変更量(VM無しの場合)≒Viewの変更量+ViewModelの変更量(VMありの場合)
>になるので、メリットとは言えない、と言いたかった
これだけど、「変更量が減る」という主張はそもそもしてないつもりだったので、全面的に同意。
減るのは具体的なViewとの結合度だけであって、実装コード量はむしろ増える傾向にある。

>Modelが変更されると必要な表示項目が増えたりするので、排除できてるってほどでもないと思う
表示項目が増えたりするのは、MVVMが云々じゃなくて、そも要件とか仕様が変わった場合でしょ?
それはViewがModelが云々って話じゃなくて、当然の現象なだけじゃない?

>FrameworkElementの継承階層自体が既に「抽象化された外見」なんだよ
この表現は違和感あるな。
FrameworkElement、ControlTemplate(というかTemplate)まで含んだ意味で使わないか?
VisualTreeにぶら下がってるのって、FrameworkElement(正確にはDependencyObjectだけど)群なんだし。

ViewModelを挟むことの利点は、テスト可能になる点、具体的なデザインとアプリケーションのロジックが分離できる点。
あとは、利点以前にWPFがMVVM(というかBinding)前提のアーキテクチャだから、
是非もないってだけだと思うけど。

基本的に、MVVMってBinding機構を持つアーキテクチャ上のMVC変形でしかないし。
0317デフォルトの名無しさん2014/12/15(月) 21:32:36.20ID:JBQWSxKz
>>313
俺はさ
1、View
2、ViewModel
3、ModelをViewModelから扱いやすくしたWrapper
4、Model
の4層になることがあるんだけど、

・ViewとViewModel以外(3と4)
・ViewModelを使用しない場合と変わらない部分(4のみ)

の2通りの解釈が混在してる気がする
俺は前者だと思うんだけど、
「VMがあろうがなかろうがMに変化はない(後者の解釈)」って意見もよく見かける
0318デフォルトの名無しさん2014/12/15(月) 21:42:57.64ID:1MwIPKbX
>>317
どっちの場合でもVMがあろうが無かろうがMに変化は無い気はするが、
>・ViewModelを使用しない場合と変わらない部分(4のみ)
って本当に画面とかの都合が全く関係ない部分の事をModelと呼ぶヤツだよね?

いわゆる後者の「Model」って、用語的にはWeb系のサーバーサイドとかの用語である「Model」であって、
MVVMが表現している所の「Model」じゃないって認識だな。
基本的にリッチクライアントにおけるパターンなんだから、メモリ上の状態を持つ奴は誰か居るはずだし。
0319デフォルトの名無しさん2014/12/15(月) 22:31:08.88ID:G60neC2E
>>306
道具に「使われて」いることを自慢するスレ
0320デフォルトの名無しさん2014/12/15(月) 22:56:41.19ID:QJlH11r8
この辺、個々の用語の定義したところで意味ないと思うけどね。
自分的にはモデルとかはアクターで実装してVMは画面を表示するのに必要なほぼ全てのロジックを持つものってことで検討の余地があまりないんだよな。
まあもっと綺麗にかける方法あるかもだけど多分そこを突き詰めてもあまりメリットない。
0321デフォルトの名無しさん2014/12/15(月) 23:18:51.15ID:1MwIPKbX
>>320
それで十分じゃね? VM以上が分離できてる前提を共有できてさえいれば、具体的な話が出来る
観念的なMVVMの話題は前提として、実装方法とか設計方法の話をしたい
0322デフォルトの名無しさん2014/12/15(月) 23:30:05.59ID:x1tnaevV
WPFの話じゃねーならここ使えよ

MVVMについて語ろう
http://peace.2ch.net/test/read.cgi/tech/1338948213/
0323デフォルトの名無しさん2014/12/15(月) 23:48:50.53ID:ErlBthzn
>>322
WPFを本格的に使おうと思ったらMVVMと切り離すのは難しいからしょうがない部分もあると思うけどね。
その場限りのテキトーツールなんかはコードビハインドにゴリゴリ書いたりするけど。
0324デフォルトの名無しさん2014/12/16(火) 07:17:44.76ID:wJ7EKTJK
昨日みたいにVM-M境界の話をダラダラとWPFスレでされても困る
0325デフォルトの名無しさん2014/12/16(火) 08:34:21.41ID:/QUlFENt
宗教戦争スレじゃないんでここ
0326デフォルトの名無しさん2014/12/16(火) 09:41:52.02ID:Krms2blI
画面で何か押されたらある状態になって、そこであれ押されたらこういう非同期でモデルの呼び出してそれが帰ってきたら元の状態に戻るとかってみんなどうやって制御してんの。VMでフラグゴリゴリ?
0327デフォルトの名無しさん2014/12/16(火) 09:48:27.19ID:A7eDA88p
君はまず日本語の勉強しなさい
0328デフォルトの名無しさん2014/12/16(火) 10:07:24.03ID:HCHWa5mJ
処理中です みたいなの出したいのか?出したらいんじゃね…
0329デフォルトの名無しさん2014/12/16(火) 10:35:45.33ID:SBqcW34N
Comfirmみたいな話のような気がする
0330デフォルトの名無しさん2014/12/16(火) 10:55:49.67ID:Krms2blI
コンファームとか含めて何かボタンとか押されてあるモードになるとか、その辺の動きの制御。
MVPVMとかも絡むか知らんがよくわからん
0331デフォルトの名無しさん2014/12/16(火) 16:09:31.30ID:kBzfN2F4
UIロジックとステートの管理はVM。
非同期呼び出しは、それがUI以外の処理ならモデル側が管理し
処理が終わればMのステートが変化し、変更通知でVMに反映される。
0332デフォルトの名無しさん2014/12/16(火) 17:16:37.13ID:biu4+AO4
ViewとViewModelを分離するという考え方は、SilverlightやWPFでは設計思想の根幹なので異論はないし、
大いにメリットも感じるが、ViewからViewModelのメソッド呼び出しをコマンドバインディングで行うのは、
「デザイナーとプログラマーは分業すべき」という思想が先行した強迫で、ファッションとしか思えない。
デザイナーとプログラマーの分業が実現しない場合、デザインとプログラミングを分離するための手段
としてコマンドやビヘイビアを使うべきという理由づけは説得力を失う。
0333デフォルトの名無しさん2014/12/16(火) 17:24:34.91ID:k8JOEiMj
そんな雑魚ソフトハウスなんかしらねーよby MS
0334デフォルトの名無しさん2014/12/16(火) 17:36:07.43ID:2L6Xzq2m
こんなところで演説されても「あ、はい」としか
せめて>>322でやって
0335デフォルトの名無しさん 転載ダメ©2ch.net2014/12/16(火) 17:50:41.73ID:ENYG0R12
分離させたいならもっと手軽なインタラクションの方法を提供しろよと思うんだけど
イベントに比べたら煩雑すぎる上に手段もばらばらで統一されてない
0336デフォルトの名無しさん2014/12/16(火) 18:11:26.30ID:fh7PLind
手段がバラバラって怒ってる奴は公式のMVVMインフラ使えよ
Windows8から提供されてんだから
0337デフォルトの名無しさん2014/12/16(火) 18:30:19.68ID:k8JOEiMj
8とか言うMEとVistaに継ぐ黒歴史
0338デフォルトの名無しさん2014/12/16(火) 19:02:00.72ID:Gue/OV69
標準で用意された物でXAMLを簡潔に書ける

コマンドを使う理由なんてそれだけで十分じゃないか
難しく考えすぎ

ビヘイビア?
確かにBlendの生産性が低い現状ではゴミだね
0339デフォルトの名無しさん2014/12/16(火) 19:40:51.70ID:SBqcW34N
自分が納得できるように勝手に使ってろよ
攻略本見ないとゲームもできないのか?
0340デフォルトの名無しさん2014/12/16(火) 19:46:47.99ID:SBqcW34N
でも最近は攻略本やwikiがないとゲームしない子も結構いるらしいですね
やれやれだぜ
0341デフォルトの名無しさん2014/12/17(水) 20:37:30.76ID:SgFsfj0x
>>326が理解できてレスしている人は凄いよな
0342デフォルトの名無しさん2014/12/17(水) 22:07:59.44ID:dk9XguQx
>>331
いやコンファームされた後モデルへのリクエスト応答を非同期で待ってその結果で処理分けしたいときあるやん。
0343デフォルトの名無しさん2014/12/18(木) 00:16:57.94ID:R3kaQ+ld
モデルの状態変更はモデルのリクエスト内で行われるので、その後の処理分けとは何も関係ないと思うけど

もし関係があるなら、一連の操作を全てモデル内で行うべきなんじゃないかなぁ
0344デフォルトの名無しさん2014/12/18(木) 06:16:18.54ID:+iVo5G6R
>>343
ログインしてその結果で成功ならログイン画面閉じて処理継続、失敗ならエラー内容出してログイン画面パスワードクリアして画面そのままって時は?
モデルから失敗のイベント受けてVMが制御するの?だったら今ログイン試行しているってコンテキスト欲しくね?フラグで管理しとくの?
0345デフォルトの名無しさん2014/12/18(木) 07:07:54.05ID:EeLdekqG
まーたVMとMの関係を議論してる
0346デフォルトの名無しさん2014/12/18(木) 20:23:26.99ID:kRzNCkTy
実装方法の話だろ
0347デフォルトの名無しさん2014/12/22(月) 22:45:21.56ID:8Yk/rM5N
WPFにも大分慣れたんだけどネストされたクラスメンバのバインディングがよく分からないんっすよ
Observable<A> Entities {get;set}のAがさらにB,Cなんかのインターフェースやクラスを持ってた場合のBindingってどうやるの?
Xamlはドット記法で候補が出ないからわかんないっすよ
0348デフォルトの名無しさん2014/12/23(火) 01:23:52.27ID:EsIBaPiX
インテリセンスないと何もかけないのか。クズが。
0349デフォルトの名無しさん2014/12/23(火) 02:50:59.27ID:XltHXZso
デザイン時用のDataContext設定したらインテリセンス出てくるよ。
0350デフォルトの名無しさん2014/12/23(火) 08:38:24.40ID:3/UsXzqc
パブリックメンバーならAになくても気にせずにアクセスすればいい
0351デフォルトの名無しさん2014/12/23(火) 12:46:39.31ID:ZBmkgZQY
コードの方はいいけど、xamlの方はintellisenseあってもわからん
0352デフォルトの名無しさん2014/12/23(火) 13:16:53.74ID:qeaTclNo
今ちょうど勉強始めたとこだけど、Bindingがわからんなー。
0353デフォルトの名無しさん2014/12/23(火) 13:22:50.22ID:IBdOOalD
今始めて一瞬にしてその辺を理解できたら逆にすげーわハゲ
0354デフォルトの名無しさん2014/12/23(火) 13:42:03.02ID:3/UsXzqc
色々試してみなとしか言えない
具体的に困っているシチュエーションがあるのならアドバイスするけど
0355デフォルトの名無しさん2014/12/23(火) 14:05:15.99ID:EsIBaPiX
俺的には依存プロパティーとか、Canvas.Leftとか渡したものがどこのインスタンスにどういう風に保存されて結果動いてるとかの説明が欲しかったな。
未だにその辺クリアに説明してるの見たことない。
0356デフォルトの名無しさん2014/12/23(火) 14:08:15.04ID:3/UsXzqc
そこは詮索してもしょうがない部分
0357デフォルトの名無しさん2014/12/23(火) 22:32:58.68ID:DxKCY5OG
staticなDpを名前で検索して、存在しなかったらRefrectionで取ってくるって操作してるだけ
名前で引っ張ってるだけよ
0358デフォルトの名無しさん2014/12/24(水) 07:24:27.58ID:0J5k3i7H
いや、実装的にこうなってると聞いた方が頭にストンと落ちるんだけど、皆はそうでもないかね。
の方が依存プロパティーのあのぐちゃっとした定義も言語の手助けが無い以上しっくり来たりしないかと。
0359デフォルトの名無しさん2014/12/24(水) 08:20:52.63ID:INDi/DcY
依存プロパティってなんだ?
依存関係プロパティなのか添付プロパティなのかどっちなんだ
0360デフォルトの名無しさん2014/12/24(水) 08:45:07.74ID:PztsOEBs
INotifyPropertyChangedが文字列でやりとりするのが嫌で
なんかオブジェクトでやろうと考えて色々実装を考えてみると
結局依存関係プロパティが一つの結論になる
0361デフォルトの名無しさん2014/12/24(水) 09:47:14.72ID:mg0/3cDk
なんかラッパーかましてリフレクションでごにょるとかなんだろうが、
なんで依存関係プロパティなんだ?バインディングソース側っつーかvmじゃん?
0362デフォルトの名無しさん2014/12/24(水) 11:19:46.43ID:pRgHqn0N
Bindingの考え方ってMS独自なの? 他の言語でこんな感じでプログラムする
ことあるの?
0363デフォルトの名無しさん2014/12/24(水) 11:58:50.16ID:o7RXIr7q
数年遅れてんなお前
0364デフォルトの名無しさん2014/12/24(水) 12:33:04.26ID:ovcwIXh2
数年どころじゃない、20年以上でしょうw
ttp://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%90%E3%82%A4%E3%83%B3%E3%83%87%E3%82%A3%E3%83%B3%E3%82%B0
0365デフォルトの名無しさん2014/12/24(水) 19:11:11.43ID:pRgHqn0N
でえっーーーーー。20年
WPFを勉強したらJAVAにも役に立つ?
0366デフォルトの名無しさん2014/12/24(水) 19:22:12.30ID:iMQO8Wmu
そのズレたレスは芸風か?
何芸人だお前
0367デフォルトの名無しさん2014/12/24(水) 19:23:17.18ID:77jCiZ2j
そもそもおまえは何をやりたいんだと
勉強すること自体が目的なのか?
0368デフォルトの名無しさん2014/12/24(水) 19:24:29.64ID:br1WxaSX
役に立つかと言われれば、考え方の面でNoではない程度の役には立つが、
JAVA(not Java)というアレから溢れ出るアレさが、お前はそれ以前だと語っている感じがする
0369デフォルトの名無しさん2014/12/24(水) 19:47:38.09ID:pRgHqn0N
Msのローカル規則じゃそのうち消えてなくならんとも限らんし
そうなるとモチベーションが上がらんだろ。
Javaならアンドロイドにも有効だし、将来性もありそうだし。
そもそもWPFって将来性はあるんかいな?
0370デフォルトの名無しさん2014/12/24(水) 19:49:12.37ID:pRgHqn0N
>勉強すること自体が目的なのか?

金もうけだろ。
0371デフォルトの名無しさん2014/12/24(水) 20:34:47.27ID:iMQO8Wmu
将来のない奴が将来を気にするって大層滑稽腹痛大晩振舞
0372デフォルトの名無しさん2014/12/24(水) 20:46:31.09ID:pRgHqn0N
WPFって日本語の本が全然ないな。しかも古ーいのしか見当たらない。
やっぱり下火?
0373デフォルトの名無しさん2014/12/24(水) 22:26:13.35ID:BS9YqGYc
微妙な位置であることは間違いない。
モダンの盛り上がりもビミョいからのぅ
0374デフォルトの名無しさん2014/12/24(水) 22:44:47.64ID:MCikQ0Ol
Windows8とかいう黒歴史が悪い
0375デフォルトの名無しさん2014/12/24(水) 22:49:30.44ID:INDi/DcY
下火もクソもWPF(Modern UI for WPF)がデスクトップもタブもスマホもMS環境のデファクトスタンダードだバカw
そもそもWPFの何が難しいんだ、C#(.NET)わかってますとかいうやつにWPF触らせたら何もできないから丁度いいリトマスっつーかバカ発見器だよw
0376デフォルトの名無しさん2014/12/24(水) 23:17:31.13ID:zO0QQ12c
>>372
MSDNのドキュメント読めよ。
0377デフォルトの名無しさん2014/12/24(水) 23:34:47.10ID:iMQO8Wmu
失敗タブと失敗Phoneと失敗8とお前のその失敗ヅラ
甲乙つけがたいな・・・
0378デフォルトの名無しさん2014/12/24(水) 23:57:18.29ID:QnfOZ+k0
縦線のセパレーター引こうとするだけでやたら苦労する
0379デフォルトの名無しさん2014/12/25(木) 00:24:33.31ID:UO+ZWjXJ
前提も何も書いてないし、別にWPFを習得することになんのハードルもないだろうが、
.NET知ってたっていきなり0からWPF使えって投げられて即やれるかったら無理だろw

しかも宗教家の下に付いた日にゃぁ、なんぼ期間あっても足りんだろうな
0380デフォルトの名無しさん2014/12/25(木) 00:36:41.62ID:x/eCloap
ハードルあるだろ。
宗教家って? 妙にこだわる人って意味か? 
0381デフォルトの名無しさん2014/12/25(木) 00:41:36.87ID:x/eCloap
xmlns:a="clr-namespace:WpfApplication1">

このaはなんなの?
0382デフォルトの名無しさん2014/12/25(木) 00:54:28.09ID:UO+ZWjXJ
なんなのって左側に書いてあんだろ。wpfっていうか、XMLの話だぞソレ。聞く前にググれよ
0383デフォルトの名無しさん2014/12/25(木) 01:36:08.28ID:x/eCloap
a:classとかa:key とかはあるの?
0384デフォルトの名無しさん2014/12/25(木) 01:46:18.69ID:355eDjF6
オシエテクン
 ア
オシエテクン
 ウン
0385デフォルトの名無しさん2014/12/25(木) 02:15:38.13ID:UO+ZWjXJ
名前空間でソレが何なのかピンとこないあたり、.NETすら頭に入ってるか怪しいな
XML、.NET これらを最低限理解してないと wpf は使えねーぞ

飛び級ってできんのや。それら理解するまで wpf やめたらいいぞ
ココ、理解してるヤツの前提のスレだから
0386デフォルトの名無しさん2014/12/25(木) 07:59:29.95ID:x/eCloap
>385
まあまあそういわずに、どうせ暇でしょ。初心者の質問に対応するのは
良い頭の整理になる。本当に理解していれば、本質をズバッとついた回答が
できる。しかし大抵は理解度が低いので誤魔化す。
で、、、、ここでは名前空間ってのが本質? さすがだねー。本質をズバッと
ついてるよ。

>ココ、理解してるヤツの前提のスレだから
 前提は理解したのでよろしく。
0387デフォルトの名無しさん2014/12/25(木) 08:30:51.17ID:sOzYbLID
クッソうぜえ
こいつに生まれるくらいならカメムシにでも生まれた方がマシだわ
0388デフォルトの名無しさん2014/12/25(木) 08:36:18.60ID:UO+ZWjXJ
おう、物凄いゴミも居たもんだなオイ…言葉もねーよw
0389デフォルトの名無しさん2014/12/25(木) 21:08:51.27ID:gYRfctsf
Telerik UI for WPFって使ってる人いる?

デモを触ってみると用途が重複している部分ではComponentOneより良さそうななんだけど
国内サポートが無いので躊躇してる
0390デフォルトの名無しさん2014/12/26(金) 07:33:49.17ID:rhc+XonX
this.DataContext = new
{
カスコンテンツ = new[]
{
new { id = "384", 名称 = "クンクン" },
new { id = "387", 名称 = "カメムシ" },
new { id = "388", 名称 = "ゴミ野郎" },
}
};

こんな場合に、XamlでListBoxにカスのidと名称をリストUPするにはどうしたらいいの?
0391デフォルトの名無しさん2014/12/26(金) 07:43:19.26ID:E/d/nF+F
単細胞には無理
0392デフォルトの名無しさん2014/12/26(金) 08:00:14.49ID:vhHzgjpW
そのレベルで聞いてたら、完成まで100回くらい質問すんじゃねーか?失せろ
0393デフォルトの名無しさん2014/12/26(金) 08:29:33.24ID:rhc+XonX
おっ、カメとゴミ。糞は直ぐに飛びつくな。W
0394デフォルトの名無しさん2014/12/26(金) 09:18:47.07ID:LhzZcfZx
ID出るようになっても釣り耐性低いままなら意味ねーな
0395デフォルトの名無しさん2014/12/26(金) 09:30:14.96ID:vVR74RNM
いまから覚えるなら
DとC#どっちがいい?
0396デフォルトの名無しさん2014/12/26(金) 09:42:14.45ID:LhzZcfZx
>>395
スレ違い
0397デフォルトの名無しさん2014/12/26(金) 13:01:32.46ID:rmOREM4X
WPFの暗黒面にのまれたくなければ今すぐDを始めるんだ
お前はここにいてはいけない・・・
0398デフォルトの名無しさん2014/12/26(金) 15:06:19.06ID:a247+u5B
ルーク、F(フォース)を使え
0399デフォルトの名無しさん2014/12/26(金) 15:12:06.15ID:/xVoNWdv
F#rce
0400デフォルトの名無しさん2014/12/26(金) 21:03:01.05ID:qZjv5zrw
forthでもいいのよ
0401デフォルトの名無しさん2014/12/28(日) 12:26:39.40ID:s1nUKoE9
WPFにあまりメリットを感じないのだが、どこがメリット?
0402デフォルトの名無しさん2014/12/28(日) 13:09:24.99ID:1AHF9F74
レイアウト/データバインドが強力なので自由度の高いUI操作をオブジェクトの操作で表現できる
WPFに習熟していれば、だけど
0403デフォルトの名無しさん2014/12/28(日) 13:27:15.57ID:CCjMPNXV
>>401
ちなみに何と比較してる?

iOSとか泥のデザイナー的なのはWPFよりマシな仕組みあるのかしら(´・_・`)
0404デフォルトの名無しさん2014/12/28(日) 13:35:59.76ID:1AHF9F74
iOSのはちょっと複雑なことをやろうとするとデリゲート使ったひたすら泥臭いプログラミングが要求される
Androidは2,3回触ったけど物凄く筋が悪いバッドノウハウの塊に見えた
0405デフォルトの名無しさん2014/12/28(日) 13:37:37.90ID:6jddN626
そう
バッドノウハウだらけだと萎える
0406デフォルトの名無しさん2014/12/28(日) 14:01:03.93ID:0mcuX8gP
より優れたUI技術が生まれたとしてその後何が起こるか

一時的に優れたUIのシステムが作られ
より愚かなユーザーにまで使われるようになり
より多くのUIの不備不足に悩まされることになり
事態は悪化する
0407デフォルトの名無しさん2014/12/28(日) 14:02:41.83ID:6jddN626
そうそう
0408デフォルトの名無しさん2014/12/29(月) 01:27:23.41ID:b0VtAuxf
WPFもバットノウハウだらけだよ

バットノウハウが無いともっさりだけど、
バットノウハウが有れば爆速になる
0409デフォルトの名無しさん2014/12/29(月) 02:25:09.20ID:LpicdqcR
長嶋さん?
0410デフォルトの名無しさん2014/12/29(月) 10:55:03.26ID:QYeytr0G
>>408
それだとどんなプログミング言語でもバッドノウハウの塊になるぞ
0411デフォルトの名無しさん2014/12/29(月) 11:00:37.71ID:QPHjbNzt
PopupのDataContextをPlacementTarget経由にする、とかそういうのはバッドノウハウだと思うが
パフォーマンス関係は普通の軽量化がほとんど
0412デフォルトの名無しさん2014/12/29(月) 14:35:02.51ID:al+8r1vL
ILに変換される.NETでパフォーマンスもクソもねーだろw
WPFなんてどう作ったって速さなんてかわんねーよ
そら罫線引くのにUIElementインスタンスを1000個生成するよりDrawingVisualやDrawingGeometryのが速いが
それは手法の問題であってんなのWindows Formsでも一緒だろーが
0413デフォルトの名無しさん2014/12/29(月) 14:47:01.21ID:XkeH/xSK
どちらかと言うと、DirectXで描画するから速いとか適当吹いた奴の罪じゃねーの
0414デフォルトの名無しさん2014/12/29(月) 20:25:32.76ID:CdSnLCLc
>>412
頭悪いバカは黙ってればいいのに(´・_・`)
0415デフォルトの名無しさん2014/12/29(月) 23:43:47.67ID:CO7+HcuL
>>414
そういう時は頭のいい発言をして黙らせるのが効果的。
0416デフォルトの名無しさん2014/12/30(火) 01:42:35.49ID:pzzlFLkT
ここで批判する奴らってGoogleで調べた知識でさも知ってますよ的な曖昧なことしか言わねーから説得力皆無なんだよw
書いてないのバレバレ、もっと具体的に反論しないと反証になんねーんだけどwww
0417デフォルトの名無しさん2014/12/30(火) 02:15:09.85ID:4oGPFvlj
どうしたの?発作?
0418デフォルトの名無しさん2014/12/30(火) 04:33:51.73ID:g95KtWi9
WPFのどこがバットノウハウだと思う?
0419デフォルトの名無しさん2014/12/30(火) 05:38:43.29ID:VqTIlXBT
バットw
0420デフォルトの名無しさん2014/12/30(火) 07:43:32.74ID:4oGPFvlj
バットマンと混ざってるな
0421デフォルトの名無しさん2014/12/30(火) 08:55:53.44ID:JWtJz6A1
ビックカメラはいつも表記まよう
0422デフォルトの名無しさん2014/12/30(火) 10:19:10.63ID:w8MUQhyz
一度に大量のバインディングされたプロバティーを更新する時
通知の間隔がある程度長いと、通知ごとに画面が更新されて凄く重くなることがある
何か処理をやりながら更新するときは、通知を最後にまとめてやると早くなることが有るね
0423デフォルトの名無しさん2014/12/30(火) 10:21:01.76ID:w8MUQhyz
一度に大量のバインディングされたプロバティーを更新する時
通知の間隔がある程度長いと、通知ごとに画面が更新されて凄く重くなることがある
何か処理をやりながら更新するときは、通知を最後にまとめてやると早くなることが有るね
0424デフォルトの名無しさん2014/12/30(火) 15:08:26.21ID:drzhuDDt
そんな大事なのか。

>>421
bic
0425デフォルトの名無しさん2014/12/30(火) 15:30:01.93ID:9D3eL6UJ
>>422
その問題はバックグラウンドスレッドから通知するときに低優先度のDispatcherPriorityを使うことで対処してるな

ただ、通知が同時でも何故かバインディングの数だけ再レイアウトされることがある

色々なコンポーネントがLayoutUpdatedイベントを使って処理を遅延させてまとめようとしてるんだけど、
LayoutUpdatedイベント同士には優先順位が無いので
上手くまとめられなくて発生するみたい
0426デフォルトの名無しさん2014/12/30(火) 15:35:49.14ID:UB18iU9+
>>425
Rx使えばいいやん
0427デフォルトの名無しさん2014/12/30(火) 15:53:03.36ID:9D3eL6UJ
この程度ならRxを使うまでもない

Rxは面白いがasync,await,yieldみたいなコンパイラのサポートが無いのが残念だな

F#の計算式ならRxをシームレスに扱えるけど、
C#と混在させるのは面倒だし
0428デフォルトの名無しさん2014/12/30(火) 17:08:14.35ID:4oGPFvlj
ビックカメラは洗脳されてるから音声で分かる
0429デフォルトの名無しさん2014/12/30(火) 18:47:17.05ID:UB18iU9+
>>427
わざわざRx使うまでもないけれどスレッド優先順位でゴニョゴニョするぐらいならスロットル的なのRxでも自前でもいいから使ったほうが良くないか?
0430デフォルトの名無しさん2014/12/31(水) 00:35:38.42ID:TkAl0U7x
>>429
スロットルと優先度はどちらか一方を選ぶというものではないと思う

例えば、RxならObservable.ThrottleのthrottleDurationSelectorパラメータに
低いDispatcherPriorityで実行可能になるまで待機するようなものを指定することだってできるんだし

優先度はThrottle的な事をしつつ、限界までレスポンスを向上させるために使う

実装はもちろんRxでもいいんだけど、これだけのためにRxを使うのはちょっと大げさかなぁと
Throttle的なイベントが1つあれば事足りるわけだしね
0431デフォルトの名無しさん2014/12/31(水) 00:40:31.65ID:jis/vh+R
>>430
んーいや上の例題だと優先度でレスポンスよくするよりは間引く的な動作をさせた方がいいかと思って。
まぁ要件に従い適材適所でって事で(´・_・`)
0432デフォルトの名無しさん2014/12/31(水) 11:00:23.22ID:w/lvmsOC
c#でユーザーコントロールをリストビューにバインドしようとしてるのだけどもう訳が分からない
ユーザーコントロールを表示させる事や、単純なテキストだけのリストビューの表示は出来たのですが。

入門に使えるサイト、本がありましたら教えて頂けますでしょうか
0433デフォルトの名無しさん2014/12/31(水) 11:12:31.39ID:EgsEk8JH
>>432
サイトも本も、まったく全然これっぽっちも分からんけどね
やりたいのはこういうこと?
http://www.dotup.org/uploda/www.dotup.org82135.7z.html
0434デフォルトの名無しさん2014/12/31(水) 11:24:07.90ID:w/lvmsOC
>>433
あ、はい、これです。
すいません、ありがとうございます
0435デフォルトの名無しさん2015/01/01(木) 03:16:12.97ID:g9LwWX3s
>420
バッドノウハウで儲けるのが情報産業の常道だから、バッドノウハウの対策
としてグッドラッパーが登場すると、それを取り込んでバッドノウハウで
グレードアップする。WPFは改善されたのだが、それ以上にバッドノウハウを
追加している。
0436 【大吉】 【216円】 2015/01/01(木) 05:45:46.03ID:Hu1IlRti
何が言いたいんだ?
0437デフォルトの名無しさん2015/01/01(木) 07:40:41.98ID:aZRx2Zh3
新年早々寝言が酷いぞ
0438デフォルトの名無しさん2015/01/01(木) 09:54:48.59ID:2oZHmgl+
安価先も間違ってるしな
酔ってるか寝ぼけてるかはほぼ間違いない
0439デフォルトの名無しさん2015/01/01(木) 10:23:39.73ID:zux1GyX3
あけおめー
0440デフォルトの名無しさん2015/01/01(木) 23:09:40.33ID:vFjZpsL0
リストボックスで選択されたアイテムの編集画面を開く、というPGを作っているのですが、
編集画面を開くのに時間がかかってしまいます。裏で予めUI部分を作っておきたいのですが、
そういうことはできないでしょうか?
Visibility を Collapsed にしておいて、アイテムが選択されたら Visible に変更する、という方法を
試してみたのですが、Visible になった時点でUIが作成されるみたいで時間は変わりませんでした。
0441デフォルトの名無しさん2015/01/01(木) 23:46:29.24ID:ySAWNeQ9
alphaでやったら?
0442デフォルトの名無しさん2015/01/02(金) 01:09:08.99ID:M6FniQYS
>>441
ありがとうございます。
やってみます!
0443デフォルトの名無しさん2015/01/03(土) 18:44:36.26ID:2QXnNUsr
MSはXAMLからWinJSへ移行していく方針なのか・・・
http://www.zdnet.com/article/windows-8-developers-are-shunning-winjs/
0444デフォルトの名無しさん2015/01/03(土) 19:13:33.22ID:TeAjaTLz
なんか既視感あると思ったら去年の一月じゃないですかやだー
ロードマップを見てもろくな更新ないし、やる気ねーことだけは分かる
0445デフォルトの名無しさん2015/01/05(月) 12:40:33.24ID:GUjuaN7q
JavaScriptとかWinJSではWindowsアプリは無理だろ。
0446デフォルトの名無しさん2015/01/05(月) 13:20:29.80ID:FjQWap8T
2012だっけ
Express版をストアアプリ専用にしようとしてたよね
今思えば血迷ってたねw
0447デフォルトの名無しさん2015/01/05(月) 14:20:45.54ID:GPpLBZZj
まだWPFなんて捨てられた技術に夢見てるの?
0448デフォルトの名無しさん2015/01/05(月) 19:58:55.15ID:O5Cj2lUa
Formsも捨てられてるから状況はイーブン
0449デフォルトの名無しさん2015/01/05(月) 20:04:13.75ID:Y6BCcXgq
Formsとイーブンでもうれしくない・・・
0450デフォルトの名無しさん2015/01/05(月) 20:36:51.02ID:R0f2W+7v
何が来れば満足なのよお前ら
速度アップ?
0451デフォルトの名無しさん2015/01/05(月) 20:50:09.54ID:O5Cj2lUa
とりあえずバグだらけのSystem.Windows.Controls.Ribbonをどうにかしてほしい
0452デフォルトの名無しさん2015/01/05(月) 21:51:52.04ID:v8mxPw7d
>>450
ちゃんと反省したTreeView
0453デフォルトの名無しさん2015/01/05(月) 22:23:28.17ID:5xT9f16I
RTとほぼ同じで一部拡張機能がWPFでは使えるぐらいにしてくれ。
0454デフォルトの名無しさん2015/01/05(月) 22:45:17.93ID:Y6BCcXgq
いちいち外部ライブラリを入れなくてもMVVMが成立するくらいのユーティリティ
0455デフォルトの名無しさん2015/01/06(火) 00:11:40.61ID:taY82kj2
もっとまともで速いFlowDocument
0456デフォルトの名無しさん2015/01/06(火) 10:07:31.50ID:lRJZAiuN
>>452
そういやTreeViewのContextmenuで、IsOpenをバインドしても最初のクリックでシンクロしなくて難儀した
アレは俺が悪かったのかバグなのかどっちなんだろう?それとも直ったのかな?
0457デフォルトの名無しさん2015/01/06(火) 11:23:41.01ID:7LxTHUh+
リボンって仕様フラフラしすぎなんだよな
WPFのは未だにWin7ベースだから、Office2010,Win8のに対応して欲しいわ
0458デフォルトの名無しさん2015/01/06(火) 15:36:31.40ID:v8n+tFrE
リボンはFluentRibbon使えばいいかなって諦めてる
Office2013みたいなテーマもあるし
0459デフォルトの名無しさん2015/01/06(火) 18:04:19.19ID:fNWhMhIP
>>456
僧衣?
0460デフォルトの名無しさん2015/01/06(火) 20:07:06.65ID:Q7R46vB5
Blend統合しろよ無能
0461デフォルトの名無しさん2015/01/06(火) 20:40:24.63ID:ypBuwdWQ
WPF難しいとかただの勉強不足だからバーカ!としか言いようがないわ
ただ不満も確かにある

・BlendのVSへの統合
・Xamlエディタでの動的オブジェクトのコード補完およびコード補完内容の説明文
・コントロール増加時のパフォーマンス低下、超絶もっさり

まぁWPF理解できない低能がどれだけ吠えようとも、今後もWPFがWindows開発の柱であることは揺るぎない
全デバイスを1つのOSで、ストアアプリをデスクトップへ、というWindows10の戦略みたらMSがどうしたいかわかるだろう
デベロッパーとしてもありがたい、Windows 10で動作するなら全デバイスで動作するネイティブアプリが作れるんだからワクワクするわ
ASP vNextもIISの呪縛から逃れられるしマジMSはじまりすぎ
0462デフォルトの名無しさん2015/01/06(火) 20:47:45.16ID:Q7R46vB5
@ITでも見たこと無いくらい提灯だな
明るくて隣の駅から見えそうだ
0463デフォルトの名無しさん2015/01/06(火) 21:32:01.91ID:thA/82xL
>>461の言うコントロール増加時のパフォーマンス低下はちょっとした工夫で劇的に改善できる

だが、デフォルト状態ではパフォーマンスが低く、
WPFを深く理解しないと
どうやったらパフォーマンスを上げられるのかがさっぱりわからない

こういった、WPFの理解度が低いと低品質なアプリしか作れない事が難しいと言われる所以だよ

>>461の言葉を借りるならば
コントロール増加時のパフォーマンス低下の改善を求める>>461自身が
WPFを理解できない低能というわけだ
0464デフォルトの名無しさん2015/01/06(火) 22:26:18.89ID:lRJZAiuN
xmlだから仕方がないんだが、xamlのコメントはもうちょい何とかならんものか
0465デフォルトの名無しさん2015/01/07(水) 00:13:46.11ID:i3ohTgqr
「デフォルト状態ではパフォーマンスが低く、
WPFを深く理解しないと
どうやったらパフォーマンスを上げられるのかがさっぱりわからない 」

これが最大の課題ではないのか
VBでクライアントアプリの覇権がとれたのは
深く理解しなくてもそこそこのものができたからでしょう

SQLWindowsとかDelphiは筋がよかったのに廃れちゃった。
0466デフォルトの名無しさん2015/01/07(水) 00:26:59.46ID:HslK9MDQ
>>465
大漁のコントロール出すんじゃなきゃ関係ねーよ。
その頃にはVBとか動かないがな
0467デフォルトの名無しさん2015/01/07(水) 00:37:17.17ID:zci1JGel
WPFの設計は時代遅れなんだよね

WPFの開発が始まった頃は
型でガチガチに固められた設計より、スクリプト言語の緩さの方が受けが良かったし、
性能やマルチスレッドの活用も軽視されていた

それがWPFの設計にも反映されてる

しばらくして、皆それが間違いだと気付いて、
Twitterの実装がRubyからScalaに変わったり、
Vistaが徹底的に最適化されてWindows7が生まれたりと
世の中は変わっていったけど、
WPFはその流れから取り残されてしまった
0468デフォルトの名無しさん2015/01/07(水) 01:32:14.81ID:OkstjUj2
つーか、コントロールが増えるともっさりになるので、システムを深く理解して
改善の工夫をしないといけないなんてのは、20世紀に逆戻りしたかのような
会話だわなw
マシンパワーは呆れるほど向上して、メモリーは湯水のように使えるになった
というのに
0469デフォルトの名無しさん2015/01/07(水) 03:22:27.63ID:nnbSJ7Mj
>>463
ム板ってこういうカスばっかだよなw
証明しないと反証にならねーんだよ低能
何がWPFを深く理解しないとだ、アホ過ぎるw
一行もコード書けない低能が、悔しかったらコード見せてみろよw
0470デフォルトの名無しさん2015/01/07(水) 07:22:59.70ID:AKPWQzMr
2006年のフレームワークだからね
よく頑張ったとも言える
0471デフォルトの名無しさん2015/01/07(水) 09:00:01.87ID:oynp39RW
それより前のフレームワークが普通に頑張ってるのにね
0472デフォルトの名無しさん2015/01/07(水) 16:55:51.79ID:zci1JGel
世に出たのは2006年だけど、設計は.NET 1.1の時代だよ
普通にArrayListとか使われてるし
0473デフォルトの名無しさん2015/01/07(水) 17:13:55.40ID:735nxo/y
ずっと見てるだけだったけど
本格的に関わらなくてほんと良かった
0474デフォルトの名無しさん2015/01/07(水) 20:49:50.26ID:oPGRKNaR
WPFというかXAMLというかだとエディット&コンティニューって使えないの?
0475デフォルトの名無しさん2015/01/08(木) 09:06:25.59ID:KlgCqyJw
>>472
Array<object>でもArrayListでもどっちでもいいがな
0476デフォルトの名無しさん2015/01/09(金) 02:35:33.20ID:U0OXyKsd
ttp://blogs.msdn.com/b/dotnet/archive/2014/11/12/the-roadmap-for-wpf.aspx

WPFのロードマップ。否定的意見が多いなー。
0477デフォルトの名無しさん2015/01/09(金) 09:47:40.44ID:MRPcFk1U
仕方ない
モノは良くても(異論は受け付けない)現実の普及状況として褒めるところがない
市場シェアWP+Winタブ3%、デスクトップ向けWin8が18%のざまで
ストアアプリに牽引力があると主張するのは無理がある
デスクトップは10年無理だったのだから、今日明日に事態が好転するとは思えない
詰んでるだろ

fan boyに「開発者が低レベルだから高尚な技術が普及しないんだ」と言わせて
自分らに矛先が向かないようにするくらいしかやることがない
0478デフォルトの名無しさん2015/01/09(金) 10:22:32.68ID:1Tr0SRmb
モノは良くても普及しないなんて言ってる奴は、モノの良さの
なんたるかをはき違えてる(異論は受け付けない キリッ)
0479デフォルトの名無しさん2015/01/09(金) 11:53:12.03ID:MRPcFk1U
そこを真に受けられても困るなw
ストレートにクソだって言うと10倍絡んでくる奴いるだろ
ご機嫌取りだと受け取ってくれ
0480デフォルトの名無しさん2015/01/10(土) 10:55:36.34ID:sfQWSbPV
WinFormsからWPFは正常進化だろ、WPFじゃなかったとしても似たようなアーキテクチャになっていたはず。
OracleもWPF(WinFX)パクったJavaFX2が次世代UIアーキテクチャだし、拡張子がFXMLなのが爆笑だがw
WPFが普及しない問題はWindowsという下位互換性・過去の開発環境リソースを捨てられないMS故のジレンマなんだよな。
.NET 1.0のアセンブリが未だに実行可能って素晴らしいことではあるんだが、これじゃ既存の怠惰な開発者がWinForms捨ててWPFに移行してこないよなって感じ
0481デフォルトの名無しさん2015/01/10(土) 11:16:26.20ID:4AfutbUM
MVVMのサポートが最初から付いてたら、状況は変わってたのかな。
0482デフォルトの名無しさん2015/01/10(土) 11:21:39.84ID:FSu0Qna5
最近WPF使い始めたけど、中途半端すぎて将来性に疑問感じた
5年前くらいから進化止まってるし、MSやる気無いだろ
0483デフォルトの名無しさん2015/01/10(土) 11:28:54.22ID:D1+6ni17
方向性は正しいと思うよ
ただ機能てんこ盛りにすぎて設計がまとまってない
進化というより未だ進化の過程の中
0484デフォルトの名無しさん2015/01/11(日) 00:43:30.96ID:SzgEAeJS
WPFで便利なのは特定の状況でリスト系表示使ってるときだけ
0485デフォルトの名無しさん2015/01/11(日) 01:21:30.87ID:aOUO6IlL
個人的なものを書き捨てるだけならものすごく有用に感じてるよ
俺の中ではAngularJSと同じポジション
0486デフォルトの名無しさん2015/01/11(日) 01:29:47.45ID:zHJ0Pate
個人的なものを書き捨てるだけなら、もっと単純なもので十分だな
0487デフォルトの名無しさん2015/01/11(日) 10:50:20.83ID:SzgEAeJS
俺は書き捨てるならスクリプトかexcel使ってる
ちょっと複雑になるとwinforms
必要に駆られるとWPF

WPFはrichtextboxが使いにくいので書き捨てには向いてない
だからwinforms使う
0488デフォルトの名無しさん2015/01/11(日) 11:04:08.03ID:aOUO6IlL
大文字richマンカッコいい
まさにExcelerな感じがする
0489デフォルトの名無しさん2015/01/11(日) 11:25:45.55ID:YzoMt1+V
書き捨て用途でRichTextBoxを使おうと思ったことが無い
0490デフォルトの名無しさん2015/01/11(日) 12:13:18.41ID:SzgEAeJS
ボタンいくつかとテキストボックスとrichtextbox置いといて
条件をテキストボックスに入れてパラメータ変えて結果をrichtextboxに出してる
0491デフォルトの名無しさん2015/01/11(日) 12:22:09.29ID:aOUO6IlL
richさを生かしてるようには見えん
そこはかとないrichさに心を奪われているのか?
0492デフォルトの名無しさん2015/01/11(日) 12:31:00.96ID:7d9i2yoH
FlowDocumentが腐ってるから
それを扱うRichTextBoxも腐ってる
SilverLightやWinRTにFlowDocument無いから、
互換性もとれないし
0493デフォルトの名無しさん2015/01/11(日) 12:39:27.01ID:99JZuKGz
RichTextの使い方知らんだけだろw
あれはXML・JSON・テキストをWordのようにレイアウトしたりするためのコントロールであって
入力をリアルタイムに解析して動的にデザイン・レイアウトするためのコントロールじゃない
そもそもTextBoxとRichTextBoxは機能がぜんぜん違うんだがw
0494デフォルトの名無しさん2015/01/11(日) 12:57:38.15ID:o357InHT
そのように意味不明な理論で制限しないと
使い物にならないのがWPF
0495デフォルトの名無しさん2015/01/11(日) 13:48:45.15ID:RLN4iPFc
使うべきコントロールを間違っているような気もするが、
RichTextBoxが糞なのは確かだな

ちょっと用途を外れたくらいで使い物にならないコントロールは
本来の用途でも少し規模が大きくなっただけで使いものにならなくなる
0496デフォルトの名無しさん2015/01/11(日) 15:22:56.36ID:TrYFGUAy
じゃあ保存が必要ないクソ長いlogなどはどこに出してんの?
特定の値だけ赤字にしたりとかはどのコントロールで表現してんの?
0497デフォルトの名無しさん2015/01/11(日) 15:34:12.62ID:aOUO6IlL
ExcelerならExcelでやれよ
0498デフォルトの名無しさん2015/01/11(日) 15:49:31.28ID:TrYFGUAy
逃げやがった
完全勝利でいいな
0499デフォルトの名無しさん2015/01/11(日) 15:55:17.13ID:aOUO6IlL
ハァ?Excel使ってるんじゃなかったの?
書き捨てるならスクリプトかexcelとか言ってたよね?
と思ったら人違いだった

csvに吐いてkibanaで見ます
なんでわざわざログビューアを作る必要があるんだ
暇なのか?
0500デフォルトの名無しさん2015/01/11(日) 15:59:04.08ID:TrYFGUAy
それだけのために別アプリにだしてるのかよ?
意味わからん
0501デフォルトの名無しさん2015/01/11(日) 16:00:39.24ID:99JZuKGz
>>496
なんだ素人の教えてちゃんかw
0502デフォルトの名無しさん2015/01/11(日) 16:01:53.44ID:TrYFGUAy
予言

また逃げる人が増えます
0503デフォルトの名無しさん2015/01/12(月) 03:07:03.97ID:Jo3DW4Xx
とりあえず、MS標準のMVVMインフラであるMicrosoft.TeamFoundation.MVVMはもっと知られていい
0504デフォルトの名無しさん2015/01/12(月) 09:35:39.41ID:kHSEMygN
いいとこあんの?
0505デフォルトの名無しさん2015/01/12(月) 11:32:00.10ID:XVhhMCkW
PrismってMVVMなんてほんの一部でその他の機能が多すぎるんだよ
TeamFoundation.Controls.MVVM.ViewModelBaseだとVMの基本的な機能をFrameworkで提供してくれるからメンテしやすいし楽
本来これを最初から用意しておくべきだった
0506デフォルトの名無しさん2015/01/12(月) 11:39:46.16ID:6Qdbqz7A
PrismもMVVM部分だけ使えるようになったじゃん。
0507デフォルトの名無しさん2015/01/12(月) 12:18:21.02ID:ZY/pps/g
ストアのBindableBaseじゃダメなん?
0508デフォルトの名無しさん2015/01/12(月) 12:29:18.51ID:XVhhMCkW
俺も.NETをすべて網羅してないから◯◯どうよ?ッて言われても答えられないよ・・・
少なくとも.NET標準であればvNextと違ってGACに依存するWPFでは楽だよね
0509デフォルトの名無しさん2015/01/13(火) 20:45:17.64ID:ohVoNly6
WPF関連のブログやMSDN読んで1週間
やっとvb.netでプロパティのデータバインディングができた

どいつもこいつも{binding X}でOKみたいなウソ書きやがって

間違ってはないんだが
どっかからコピーしたような小難しい言い回しのサイト多すぎ
簡単に説明してくれマジで
0510デフォルトの名無しさん2015/01/13(火) 21:27:47.54ID:krNgkKs1
最も重要な要素の1つだからな。全部すっとばすか、説明するか、どっちかしかないだろ
0511デフォルトの名無しさん2015/01/13(火) 21:29:09.64ID:2vD2D518
初歩の初歩で躓いたときはさっさと他人に聞いた方が良いぞ
0512デフォルトの名無しさん2015/01/13(火) 22:28:17.73ID:ohVoNly6
>>511
会社では相談相手いないし
日本はまともな掲示板ないから質問もできないし
0513デフォルトの名無しさん2015/01/13(火) 22:30:52.32ID:ohVoNly6
>>510
XAMLの書き方も知りたいし
リストのバインドやコマンドも知りたい
格好いいデザインのテンプレートも使いたい
0514デフォルトの名無しさん2015/01/13(火) 22:37:41.96ID:2vD2D518
>>512
最近はStackOverflowの日本語サイトが稼働してる
0515デフォルトの名無しさん2015/01/13(火) 23:29:43.47ID:krNgkKs1
XAMLを覚えようって意気込んで覚えるもんでもない気はする
というか無理じゃねっていう。やってりゃ嫌でもその内少しずつ入ってくるぞ
0516デフォルトの名無しさん2015/01/14(水) 00:13:48.21ID:626Lie0F
>>514
賑わって無い気がする
日本のプログラマはお互いに人間不信になってる感じ

マ板みてれば解るけども
0517デフォルトの名無しさん2015/01/14(水) 00:30:49.72ID:/i0oeU5w
>>516
賑わってないとか言って様子見する奴が居るから寂れてるように見えるんやで
回答して信用度稼ぎたいプログラマは溢れてるんだから、とりあえず質問投げてみーや
0518デフォルトの名無しさん2015/01/14(水) 01:22:45.81ID:0BUdKk4M
XAMLなんて何も難しくないじゃん
それよかXAMLのためのMVVM(MVPVM)なのに前提となるMVVMの約束が破綻してるんだよな
DataTemplateもSelectorもVがVMのインスタンス参照してるじゃんってね
そもそも画面遷移のためにPrismのMediator必要ってはぁ?って感じ
0519デフォルトの名無しさん2015/01/14(水) 01:32:32.84ID:/i0oeU5w
>>518
VMのインスタンス参照してなんか悪いことあるんか?
というかVMのインスタンス持たなかったらVとVMどうつなげるんだ
0520デフォルトの名無しさん2015/01/14(水) 08:02:02.14ID:0jHyb9lO
本当に必要なのはほんの一握りで
大半は必要だと思いこんでるだけです

ほんとうにひつようならMSがどれだけばかでもPrismをPresentationFrameworkにふくめるでしょ
0521デフォルトの名無しさん2015/01/14(水) 09:17:58.22ID:r9rByxGG
XMLは難しくないが、XAMLをソラで網羅的に書けたらすげーわ
0522デフォルトの名無しさん2015/01/14(水) 10:03:52.36ID:1jdWS2PW
基本はGridと各種コンテナだってわかるまでに10画面くらい費やした
0523デフォルトの名無しさん2015/01/14(水) 18:59:22.24ID:626Lie0F
なんでコマンドと双方向プロパティを
もっとシンプルに実装しないんだろうな
理解に苦しむよ
0524デフォルトの名無しさん2015/01/14(水) 20:00:34.53ID:mIJOHu8K
コマンドがICommand以上にシンプルになる気はしない
CanExecuteを削るっての以外で
0525デフォルトの名無しさん2015/01/14(水) 21:11:11.21ID:qRMiZ9TC
DataGridRowのGetIndex()をプロパティに出してくれよ
行の色変えごときでいちいちコードビハインド書かせられたら白けるわ

つか.net自体に拡張プロパティが欲しい
0526デフォルトの名無しさん2015/01/14(水) 21:33:00.50ID:mIJOHu8K
それはAlternationCountとかAlternatingRowBackgroundでイケる
0527デフォルトの名無しさん2015/01/14(水) 21:44:58.92ID:CF3pYICG
>>526
ググったらそれが出てくると思うんだけどね
コードビハインドでやってるとか珍しい
0528デフォルトの名無しさん2015/01/14(水) 21:55:46.44ID:PcEMyRkA
スレチだったら誘導お願いします。

WPFで三次元座標データを3D表示しようとしています。(点数は217088 デバイスはkinect)
各点にはそれぞれBRG色で表示したいです。
現在は3D描画関連はHelixToolkitっというものを使用しています。(http://helix-toolkit.github.io/

が、テクスチャ考慮なしで全点をBox表示すると、メモリオーバーフローで動きません。
1/5に点数を間引くと何とか表示できているのが現状です。
正直、この動作では全く条件を満たせていません。

WPFのみで目的を満たそうとするためにはこのライブラリ以外でも構わないので
何か良いサンプルであったり、ライブラリはないでしょうか?
基本的にはGnuplotみたいなイメージで、各点はfps20ぐらいで毎フレーム更新する予定です。
0529デフォルトの名無しさん2015/01/14(水) 22:45:21.80ID:qRMiZ9TC
>>526
ありがとう
0530デフォルトの名無しさん2015/01/14(水) 23:37:49.76ID:r9rByxGG
そんなのやってるのココにはいなそう・・・
ここは広義で紙芝居アプリ屋とでもいうのか、そんなんしか
いやまぁ、そういうフレームワークだとは思うんだけどw
0531デフォルトの名無しさん2015/01/14(水) 23:54:02.79ID:FGiWDhRr
SharpDXで実装しなおして、DirectXスレ辺りで質問してみるとか
0532デフォルトの名無しさん2015/01/15(木) 08:50:30.95ID:nnRqO7o5
>>530
>>531
ありがとうございます。

立ち止まっては時間がもったいないので、
SharpDXで再度実装を行ってみます。
OpenGLは使えるのですが、いまだにDirectXは手つかずの状態でしたので
DirectXは避けていました。
0533デフォルトの名無しさん2015/01/15(木) 08:51:10.28ID:4kO6gtvK
>>528
WPFの描画システム的にピクセル単位のリアルタイム描画は向いてないので無茶
DirectXを直接Hostするか、DirectXラッパーライブラリ系をNugetあたりで落としてきて使うか、
あたりが現実的なラインじゃないかな
0534デフォルトの名無しさん2015/01/15(木) 09:24:01.07ID:nnRqO7o5
>>533
レスありがとうございます。
そこまできっぱり言っていただけると、あきらめがつきます。
確実なAPIがそろっているSharpDXへと移行していこうと思います。
グラフィック関連含めてMicrosoftで完結できる日がいつ来るのでしょうかね・・・。

ありがとうございました。
0535デフォルトの名無しさん2015/01/15(木) 15:16:14.56ID:Wq+B737k
intとバインドしてるTextboxで値が10以上の時は文字色を黄色、10未満だと黒というふうにしたいんですが、XAMLだけで実現できますか?
0536デフォルトの名無しさん2015/01/15(木) 15:34:01.30ID:z04OcHIE
ビヘイビアもしくはコンバーターを実装する
ttp://sourcechord.hatenablog.com/entry/2014/11/02/033010
0537デフォルトの名無しさん2015/01/15(木) 15:53:45.80ID:0jNG3F97
この程度のことにクラス定義しろだのなんだの
阿部寛の顔みたいなくどさ
0538デフォルトの名無しさん2015/01/15(木) 16:06:11.91ID:LzgaFU6f
VMに10以上かどうかを表すboolプロパティ追加
0539デフォルトの名無しさん2015/01/15(木) 16:12:46.45ID:z04OcHIE
>>537
XAMLはUIデザインを表現するパーツであり、プログラミングするパーツじゃないんだがなー
0540デフォルトの名無しさん2015/01/15(木) 16:28:01.17ID:CAoWjNKx
Converterを使うのが嫌ならTrigger使えばいいじゃん
0541デフォルトの名無しさん2015/01/15(木) 17:53:39.87ID:eVu0SbiK
Triggerで10以上って表現できんの?
0542デフォルトの名無しさん2015/01/15(木) 19:49:08.58ID:DEgz/ZDg
BlendSDKのDataTriggerにはComparisonプロパティがあるから、そっちを使うといいよ。
さすがにこの程度のこともできないとゴミだなとはMSも理解してる。
あとはさっさとSystem.Windowsの下のあれと置き換えてくれればね…。
0543デフォルトの名無しさん2015/01/15(木) 21:14:45.91ID:hLpbiH2N
vbでwpfプログラムしてるのだけど、
自動実装プロパティ内にデータの通知を
する場合は展開してsetに通知を書くけど

その時のvalueは別途プライベート変数
用意して記憶するのが正しいの?

折角の自動実装プロパティなのに
もったいなくね?
0544デフォルトの名無しさん2015/01/15(木) 21:22:54.46ID:hLpbiH2N
>>539
色変えるとかは確かにビューで完結して欲しい
xaml内にスクリプトかけないのかな?
0545デフォルトの名無しさん2015/01/15(木) 21:32:08.00ID:r4XhfXoN
IValueConverterはビューの一部
0546デフォルトの名無しさん2015/01/15(木) 21:33:33.33ID:yTCJBhR9
もったいないよー
ヘジの信者以外は誰もが同意するところだ
0547デフォルトの名無しさん2015/01/15(木) 21:47:11.31ID:yTCJBhR9
こんな中途半端なデザイナーとプログラマーの分離とかいう哲学で誰が幸せになったんだろ
0548デフォルトの名無しさん2015/01/15(木) 22:31:17.37ID:r4XhfXoN
0549デフォルトの名無しさん2015/01/15(木) 23:09:32.72ID:hLpbiH2N
>>545
xamlで完結したい
0550デフォルトの名無しさん2015/01/15(木) 23:31:49.63ID:4kO6gtvK
>>549
標準XAMLのみで完結は無茶。カスタムコントロールの作成も出来んだろそれ。
標準のXAMLで書けるコントロールと同列のパーツを作成して、XAMLで完結させるのは十分理に叶っている。
0551デフォルトの名無しさん2015/01/15(木) 23:41:27.60ID:r4XhfXoN
式をMultiBinding+IMultiValueConverterに変換するMarkupExtensionとか作ったら捗りそうな気がする
0552デフォルトの名無しさん2015/01/16(金) 01:17:39.34ID:3ZAIwdSl
>>550 UIをリッチにする目的のプログラムを別途作成するってのはなんだかなぁ
一通りコンバータを用意して欲しい気がする

結局UIデザイナはただの絵描きになるわけではないか
0553デフォルトの名無しさん2015/01/16(金) 03:38:28.16ID:5GEh+69n
標準クラス群が貧弱ってのも腹立つな
Blendを統合しろ無能
BlendのInteractionsも標準に含めろ無能
0554デフォルトの名無しさん2015/01/16(金) 03:39:41.87ID:5GEh+69n
標準だと石器時代の不便さを思わせるんだよ、分かるか
0555デフォルトの名無しさん2015/01/16(金) 11:52:22.49ID:+oYcDVvz
MS自身もBlendとVS作るために山ほどツールキット作ってるはずなんだよな
それをライブラリ化するだけで一通り必要なものは揃うはずなのに
0556デフォルトの名無しさん2015/01/16(金) 11:57:29.68ID:IvlGFMzz
どんなしょーもないビヘイビアだろうがコンバーターだろうが、
とりあえず全部入れちゃえばいいのにな
しょーもないのを書くのがめんどくせぇんだから
0557デフォルトの名無しさん2015/01/16(金) 18:03:18.17ID:tG7GHe8y
もう終わったんだよWPFは
0558デフォルトの名無しさん2015/01/16(金) 18:55:53.76ID:3ZAIwdSl
レベル低くてすいません

datacontextにバインドするプロパティ&コマンドのクラスは
独立したcsやvbに作成してnewの中でバインドするのが正しいの?

XAMLにwindow.resourceと追加したのだけど
バインドされませんでした
0559デフォルトの名無しさん2015/01/16(金) 19:00:11.21ID:Q4T15R18
本当にいつまでたっても普及の兆しすらないねw
ここ1年触ってないけど暇ができたからまたちょっとやってみるかな。
0560デフォルトの名無しさん2015/01/16(金) 21:06:20.84ID:38rhz1UE
>>557
差し支えなければ
いつ始まっていたのか教えていただけますか?
0561デフォルトの名無しさん2015/01/16(金) 21:43:23.08ID:JyE/8mAy
sharpdxはtoolkitの開発終了するのか(;´Д`)
0562デフォルトの名無しさん2015/01/16(金) 22:26:03.80ID:49OvZmoV
てかなんでExpression Blendを唯で配布してくれないの?
いくらVSが唯だからって、これないと片手落ちじゃね?
0563デフォルトの名無しさん2015/01/16(金) 22:30:10.14ID:byha8ECZ
とっくの昔に無料ですぜ
http://www.microsoft.com/expression/jpn/

VSにさっさと統合しないからこの辺の知名度も上がらないんだと思うの
馬鹿なの?
0564デフォルトの名無しさん2015/01/16(金) 23:03:49.45ID:xAu7dcLy
>>558
Resourceに追加したからってDataContextに代入されるわけではない
<Window.DataContext>
 <local:XXXViewModel/>
</Window.DataContext>
とかすればXAMLで書けるが
0565デフォルトの名無しさん2015/01/16(金) 23:04:06.92ID:49OvZmoV
おお、無料版あったのか。これで百人力。
0566デフォルトの名無しさん2015/01/16(金) 23:09:21.03ID:49OvZmoV
>>563
無料版がある!!と思ったら
「新しいバージョンは開発されていません」
マジかよ。どうすんのよ。
てかどうなんのよWPF。Microsoftはいったい何をしたいの?
0567デフォルトの名無しさん2015/01/16(金) 23:11:36.57ID:hUUDu3Ax
>>566
VS2012以降はPro以上のVSに付属するようになった。
VS2013Proは実質無料化。
つまりそういうことでしょ。
0568デフォルトの名無しさん2015/01/16(金) 23:16:09.22ID:H5Oavj5u
>>566
Communityに付いてるぞ
0569デフォルトの名無しさん2015/01/16(金) 23:21:42.93ID:3ZAIwdSl
>>564
なるほど。頭いいなー
0570デフォルトの名無しさん2015/01/16(金) 23:24:42.63ID:3ZAIwdSl
>>564
ビューにバインドできるクラスは
一つだけなのですか?
0571デフォルトの名無しさん2015/01/16(金) 23:32:33.14ID:xAu7dcLy
>>570
もうちょっと基本的な事は調べれ
ググれで全部済む
0572デフォルトの名無しさん2015/01/19(月) 21:44:34.47ID:28kynkSg
WPFをググりながら勉強してるけど
やはり情報少ないな

MSDNみてもどうもピンとこないというか
0573デフォルトの名無しさん2015/01/20(火) 19:39:56.66ID:xzrs5cc2
まぁ慣れてたほうがいいよな
ストアアプリも似たようなもんだし
0574デフォルトの名無しさん2015/01/20(火) 20:25:08.50ID:fzj8Gm9/
ストアアプリってこのまま終わるんじゃね
日本でWindowsPhoneをこんなに売らないとは思わなかった
0575デフォルトの名無しさん2015/01/20(火) 20:30:03.40ID:JNlE/+5w
まるで売ってれば売れるような言い草
0576デフォルトの名無しさん2015/01/20(火) 22:01:31.55ID:Zs19/+g8
WPFのUIとコードの分離は気に入ってるけど

覚えても数年後に消滅してそうな技術なのが怖くて仕方ない
0577デフォルトの名無しさん2015/01/20(火) 22:26:49.57ID:JNlE/+5w
10年経っても流行らないと言われているが
10年持ったとも言えるのよ
0578デフォルトの名無しさん2015/01/21(水) 10:20:56.76ID:9386VdZE
>>576
> 覚えても数年後に消滅してそうな技術なのが怖くて仕方ない

MFCも以前はバリバリ使ってたけど、廃れたら廃れたで全然問題ないよ。
新しいものを覚えていけばいいだけ。
0579デフォルトの名無しさん2015/01/21(水) 13:50:45.24ID:W+aNuk6y
SSDと違って脳の容量には限界がある
無駄遣いは避けたい
0580デフォルトの名無しさん2015/01/21(水) 14:00:02.83ID:OU53EoFB
Windows10でストアアプリがウインドウ表示出来るようになるし、
そうなったら、WPFは完全に要らない子になる
0581デフォルトの名無しさん2015/01/21(水) 14:23:19.84ID:qABZ5Od3
なぜ初めからWindow表示できるようにしなかったのか本気で理解に苦しむ
0582デフォルトの名無しさん2015/01/21(水) 15:24:22.93ID:9386VdZE
ハイレゾ対応じゃないの?
0583デフォルトの名無しさん2015/01/21(水) 17:54:56.90ID:xCJbmfQD
>>581
winRT機が売れなくなるからでは?
もうやめたんだよね?製造は?
0584デフォルトの名無しさん2015/01/21(水) 18:03:39.83ID:uKrh193E
>>580
それは絶対ないってこのスレだけで3回は書いてる件。
っていうかこういうこと言ってる人ってストアアプリについてちょっとでもかじったことあるのかw
0585デフォルトの名無しさん2015/01/21(水) 18:27:33.40ID:/GVHrWga
ストアアプリ、iOSのアプリと同じくらい制限あるし、
デスクトップアプリケーションが要らなくなる未来は現状見えてもいない
0586デフォルトの名無しさん2015/01/21(水) 18:48:50.89ID:Gey3aM38
>>580
silverlightでも同じセリフを聞いたことがあるなぁ

今silverlightはどうなったんだっけ?
0587デフォルトの名無しさん2015/01/21(水) 21:34:03.18ID:nBliafqs
明日何発表するんやろ
0588デフォルトの名無しさん2015/01/21(水) 23:27:24.40ID:tW49gJrA
WPF以外のなにか
0589デフォルトの名無しさん2015/01/22(木) 01:24:20.98ID:QykybOgS
>>580
wpfってストアアプリ専用じゃないぞ
0590デフォルトの名無しさん2015/01/22(木) 17:31:17.62ID:QMFULg7+
C1FlexGridについての質問です。

C1FlexGridのデータバインドとしてクエリーの結果を登録しています。
flexGrid.ItemsSource = myDataSet.Tables[0].DefaultDataView();
<c1:Column Header="名称" Binding="{Binding 名称}" /> など。

これを、あるクラスのCollectionに変えるにはどうすればいいですか?
例えば、
class MyClass {
private DataRow _row;
public MyClass(DataRow row) { _row = row; }
}
の集合をC1FlexGridに表示したいんです。

もしできる場合、そのクラスのメソッドをBindingに使うことはできますか?
例えば、
public string GetFullName();
があるとき、そのメソッドの戻り値をC1FlexGridに表示したいんです。
0591デフォルトの名無しさん2015/01/22(木) 18:07:05.38ID:4Jtntbsa
グレープシティのサポートに聞いた方がいいぞ
つーかDataSetなんて旧世代の遺物を
0592デフォルトの名無しさん2015/01/22(木) 18:23:17.57ID:QMFULg7+
>>591
> つーかDataSetなんて旧世代の遺物を
C#もWPFもC1FlexGridも使うの初めてだから、普通どうやるのか良くわかってないんです。
0593デフォルトの名無しさん2015/01/22(木) 18:27:50.43ID:QMFULg7+
というか、.NETも初めてなので、なかなか手探り状態から脱出できません・・・
0594デフォルトの名無しさん2015/01/22(木) 19:16:00.78ID:cpxM7heM
通常DBから DataSet もしくは最近の流行だとWebサービスから Json で受け取り、
ドメインモデルのコレクション(ObservableCollection)を生成
それをビューとバインドという流れになるかな
0595デフォルトの名無しさん2015/01/22(木) 19:40:56.96ID:G5fG+bs3
ICustomTypeDescriptorとかでイケるんじゃないの
初心者には辛いだろうが
0596デフォルトの名無しさん2015/01/22(木) 21:52:18.32ID:hxMZ7Czt
.netのDB関連は迷走し過ぎて意味が分からない
ちゃんとその時期の使うべきものをまとめて勉強できるサイトがあればいいけど
昔の情報ばかりに突き当たる
0597デフォルトの名無しさん2015/01/22(木) 22:32:52.50ID:TqsVCR2I
DBの扱いは4択かな
1.SQLserver専用の、テーブルと1対1なアダプタ経由のカスタムdataset
2.odp.netのような、SQL文字列投げてdatasetでうけるだけ
3.データベースとは直接やりとりせず、json。
4.splite-netのように、テーブルに対応するクラス作って、それのコレクションでうけたりする方式

ストアアプリだとdataset使えないから、下2つしか選択肢ないけど、、、
0598デフォルトの名無しさん2015/01/22(木) 22:51:34.95ID:ir5gsVSI
なんでEntityFrameworkが選択肢にないのか理解に苦しむ
0599デフォルトの名無しさん2015/01/22(木) 22:51:39.30ID:G5fG+bs3
1はMSSQL専用じゃなくて2で出てくるODP.NETでも型付データセットジェネレーターは使える
3はDBの話じゃないし4でEF Code FirstやLINQ to SQLが出てこないのも意味不明
あとEDMの存在が忘れられてる
0600デフォルトの名無しさん2015/01/23(金) 00:21:12.69ID:dpb0ZGXS
EFとLINQtoSQLか、あーなるほど・・・
出てこないのは理解できてないからに決まってるじゃないですか
ありがとう
06015902015/01/23(金) 10:14:56.90ID:xwefCwRE
みなさん、いろいろとコメントありがとうございます。

ちょっとだけググってみたところ、ObservableCollectionを使うのが良さそうで、もう少し調べてみます。
ICustomTypeDescriptorについても調べてみます。

最初にDBアクセス方式を調べたとき、EntityFrameworkがデファクトなのかなと思ったんですが、
なんだかここ数年でも仕様が迷走してるみたいだったのと、初心者にはちょっと辛いかなと敬遠してしまいましが。
0602デフォルトの名無しさん2015/01/23(金) 10:22:08.61ID:CREeWvq6
脳死で使う分にはEFは便利だと思うで
wpf 全然関係ねーけど
0603デフォルトの名無しさん2015/01/23(金) 10:28:54.06ID:QQiBYRAP
EntityFrameworkはちゃんとした本を読んで
DBの知識がしっかり付いてないと使いこなすのは難しいよ
0604デフォルトの名無しさん2015/01/23(金) 11:56:38.98ID:pWsgLYnB
EFモバイルサービス絡みで初めて触れたが、スキーマ変わった時のソース生成されるマイグレーションとか破綻しないのかねあれ。
0605デフォルトの名無しさん2015/01/23(金) 20:27:02.31ID:I6P7bznI
__MigrationHistory絡みで苦労した経験は幾らでもあるけどアレを使ってマイグレーションしたことは一度もない
0606デフォルトの名無しさん2015/01/24(土) 15:02:10.42ID:d5sOd2yH
Prismのリファレンスってどこにあんの?
DevelopersGuidoはMSDNにあるけど、そんなものが見たいわけではない
クラスとメソッドとシグニチャ一覧を俯瞰したいんだ
https://msdn.microsoft.com/en-us/library/gg406140.aspx

以下は「クソの役にも立たない」とか
「中身がスカスカ」とか酷評されているので見なかったことにしたい
https://compositewpf.codeplex.com/releases/view/121123
0607デフォルトの名無しさん2015/01/24(土) 15:02:57.78ID:d5sOd2yH
なぜかGuidoになってるorz
Pythonはそこまで好きじゃないんだがなあ
0608デフォルトの名無しさん2015/01/24(土) 15:39:25.42ID:d5sOd2yH
どうせエラー吐くような半端なデザイナなら無効にするオプションが欲しい所だ
外部アセンブリ内のクラスで定義された添付プロパティもまともに検出できない状態で誰か喜ぶのか?
そんなんなら初めからBlend使うわ
http://blog.spinthemoose.com/2013/03/24/disable-the-xaml-designer-in-visual-studio/
0609デフォルトの名無しさん2015/01/24(土) 15:56:46.56ID:KxFe7/be
>>606
普通にあるやん
Prism Class Library 5.0 for WPF
https://msdn.microsoft.com/en-us/library/dn736262.aspx
Prism 4.1 Desktop Class Library
https://msdn.microsoft.com/en-us/library/jj583451.aspx
0610デフォルトの名無しさん2015/01/24(土) 16:02:23.17ID:d5sOd2yH
>>609
助かったわ
DevelopersGuideのメニューの一番下にあんのね
チュートリアルのセクションに置くようなものじゃねえと思うけど
0611デフォルトの名無しさん2015/01/25(日) 18:25:35.02ID:pZk0xiV3
Microsoft.TeamFoundation.MVVM.WindowViewModelのOnWindowLoadedとかってどういう風に使うの?
https://msdn.microsoft.com/ja-jp/library/microsoft.teamfoundation.mvvm.windowviewmodel%28v=vs.110%29.aspx
0612デフォルトの名無しさん2015/01/28(水) 15:36:53.53ID:GIALCG5U
【開発環境】VS2013 Community

ソリューション内に複数のプロジェクトがあって、
プロジェクトABCのXAMLで
<Window ... xmlns:local="clr-namespace:ABC">
<Window.DataContext>
<local:MainViewModel/>
</Window.DataContext>
の部分に
「名前 "MainViewModel" は名前空間 "clr-namespace:ABC" に存在しません。」
ってエラーがでるんだが。もちろん名前空間もあってて、同じプロジェクト内にあるんだが。

http://devlights.hatenablog.com/entry/2014/10/31/014820
にある記事とかはソリューションの保存先をCドライブ直下にしたらうまくいったとか
試してみたけど、何もかわらない。
何が原因っすか?
0613デフォルトの名無しさん2015/01/28(水) 15:57:58.28ID:wZ8pFfCP
デザイナでの問題? なら気にするなとしか
ビルドや実行時にエラーが出る?
0614デフォルトの名無しさん2015/01/28(水) 16:03:21.62ID:GIALCG5U
>>613
ビルド時にエラーが出る。

それだけではなく、もう一つ
「不明なビルド エラー '見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。 (HRESULT からの例外:0x80131040) 行 44 位置 57.' が発生しました 」
ってのも出てるが、これは外部のプロジェクトをインポートしている。

ビルド時は>>612と今回の二つ。
「local:」まで打てば予測がでるんだが、そこにMainViewModelがあるのに、選んでもエラーのまま。
0615デフォルトの名無しさん2015/01/28(水) 16:32:29.17ID:wZ8pFfCP
もう一つの方のエラーのせいで適切な中間ファイルが作られてないって状況かな
とりあえずそっちのエラーを解決したら?
0616デフォルトの名無しさん2015/01/28(水) 17:56:15.62ID:GIALCG5U
>>615
ありがとう。
結局ご指摘どおりだった。

dllのx86, x64の切り替えるタイミングがごちゃごちゃしてたから
一旦クリーンしてリビルドしてたらエラーが消えて、結果的にビルドが通った。

ありがとう。仕事じゃなかったらWPFやめたい。
0617デフォルトの名無しさん2015/01/28(水) 18:05:50.27ID:fHTEL2vB
それWPFの問題か?w
0618デフォルトの名無しさん2015/01/28(水) 18:58:44.52ID:XqsUekt2
坊主憎けりゃ袈裟まで憎いってやつだな
0619デフォルトの名無しさん2015/01/29(木) 01:41:02.49ID:+Xc3eIm3
EFか。。
重すぎてエントリ系には使えない。
dapperとか計量マッパーにしとけ。
ただしEF+LINQで開発生産性は最強だがなw
0620デフォルトの名無しさん2015/01/30(金) 23:52:21.75ID:pPL11rel
ListBoxのItemsのRenderSizeを取得することはできる?
「WPF ListBox 幅」とかで検索してもHorizontalContentAlignmentをStrechにするみたいなのばかりヒットして求める情報が手に入らない
0621デフォルトの名無しさん2015/01/30(金) 23:56:39.60ID:m8RXaqSt
>>620
できる

何をしたいのかは分からんが、したい事を書いたほうが建設的だぞ
0622デフォルトの名無しさん2015/01/30(金) 23:58:37.06ID:pPL11rel
>>621
幅が狭い順にソートしたい
0623デフォルトの名無しさん2015/01/31(土) 00:55:19.29ID:L7qxdE+F
>>622
あくまで手段の一つだが、SizeChangedをトリガーにActualWidthあたりを見ればItemの幅が取れる
Binding出来るようなBehavior書くなりすると汎用的だろうが、
とりあえずでやるならコードビハインドに書けばいいんじゃね
0624デフォルトの名無しさん2015/01/31(土) 01:44:59.62ID:hlfqliWB
sizeChangedを試してみたけどListboxの高さからはみ出て表示されない分は計算されなかった
ソートするには全部の幅がどうなるかを取得しなきゃいけないからこの方法じゃダメそう
0625デフォルトの名無しさん2015/01/31(土) 10:05:54.55ID:L7qxdE+F
仮想化OFFにすればいけそうに見える
あるいは幅自体をVM側で値として保持するとか。要件知らんからアレだけど。
0626デフォルトの名無しさん2015/01/31(土) 10:41:16.68ID:tErVnSOh
>>622
そもそもソートってどうやるんだっけ?
ObservableColの中身をソートして追加し直し?
0627デフォルトの名無しさん2015/01/31(土) 11:09:14.75ID:Zp0atq7E
ICollectionViewを挟むんだろ
0628デフォルトの名無しさん2015/01/31(土) 11:10:37.42ID:29y+W13d
そもそも描画してるわけだからさ、その幅ってモデルのプロパティに依存しないの?
さすがに「ランダムです」ってことはねえだろ
それをCollectionViewSourceでソートしたらええんちゃうの
0629デフォルトの名無しさん2015/01/31(土) 11:14:31.44ID:tErVnSOh
>>628
モデルのプロパティから表示の高さが計算できるならな。
フォントの大きさが混在するラップするテキストとかだったらどうやって計算するつもりなんだ?
0630デフォルトの名無しさん2015/01/31(土) 15:42:50.27ID:qtZe2a48
var text = new FormattedText(...)
text.Width

これでソートしてやればいいやろ
0631デフォルトの名無しさん2015/01/31(土) 15:43:51.55ID:29y+W13d
いや、お前には聞いてねえよ
お前は質問者の要件しらねえだろ
0632デフォルトの名無しさん2015/01/31(土) 15:55:44.25ID:hlfqliWB
>>630
すげえ完璧だわ
0633デフォルトの名無しさん2015/01/31(土) 18:14:54.23ID:8yD/Dcpa
最初から文字と言っていたら速攻だったろうにw
0634デフォルトの名無しさん2015/01/31(土) 18:25:07.22ID:EaH0DvWu
質問者の要件を知ってるのはオレだけだよ
0635デフォルトの名無しさん2015/02/01(日) 10:22:17.99ID:ymu35Jul
クライアントから要件を余さず引き出せないようではこの世界に向いてない
0636デフォルトの名無しさん2015/02/01(日) 12:42:46.04ID:K9d0TBOk
勉強してないんでよくわからないけどMeasure とかArrangeの出番じゃないの?
0637デフォルトの名無しさん2015/02/01(日) 13:01:37.12ID:ymu35Jul
質問者も勝手に問題を抽象化しないで、やりたいことを具体的に言え
でないと>>628みたいな要らん推測で答える必要が出てくる
0638デフォルトの名無しさん2015/02/02(月) 00:49:31.87ID:oCKieM5N
Model部分の設計で聞きたいんだけど、
複数のViewに跨って存在するようなデータとかロジックあるじゃん?

あれって、V-VM-Mを1:1:1とかにすると難しいと思うんだけど、
Model層の最上部はシングルトンで管理とかしてるわけ?
そこら辺の細かい設計の話、どこ探してもないんだけど。
0639デフォルトの名無しさん2015/02/02(月) 01:38:08.47ID:kv/tjPco
そんな辺りはアプリ側で好きにしろってことかと思うが。
なんで1-1-1にしてんの?
別にV-VMですら1-1である必要はないし、モデルなんかそのアプリによってなんとでもなるがな
0640デフォルトの名無しさん2015/02/02(月) 01:58:57.28ID:oCKieM5N
>>639
そらどうにでもなるし、どうでも作れるのは知っとるよ
実際どうやってるのかの事例聞きたくてさ
1:1:1にすると綺麗な設計にならない事は知ってるし、その辺の基礎はわかってるつもり

だから、モデルの最上部(ViewModelと直接接する部分)の話、誰か良さそうな事例知ってないかなと
0641デフォルトの名無しさん2015/02/02(月) 02:43:23.58ID:57NtitWJ
フォントの設定を保存するためにTextBoxのFontFamilyとかFontSizeに設定をバインドしてる
一旦、フォントの設定を書き換えたらきちんとバインドした値が入るんだけど、フォントがデフォルトのままだとバインドしてる値がnullとか0のままになってしまう
もちろん元のTextBoxのFontFamilyはMeiryo UIを示してる

これをきっちりバインドさせるにはどうしたら良いだろうか
0642デフォルトの名無しさん2015/02/02(月) 02:47:54.60ID:oCKieM5N
>>641
1. BindingがTwoWayになってるかの確認
2. VM側でMeiryo UI指定する
0643デフォルトの名無しさん2015/02/02(月) 02:52:33.48ID:57NtitWJ
>>642
確かにVM側で指定したら解決するとは思うけどMeiryo UIが入ってないVistaでは正常に動作しなそうだからView側から値を渡したい
0644デフォルトの名無しさん2015/02/02(月) 10:02:39.23ID:1LhX7F9a
>>640
そこらへんになったらMVCとかでも使われるようなモデル部とビューなど部の分離の話何じゃねーの。MVVMに限らずアーキテクチャーパターンとして転がってない?

昔ながらのMVCとかはワード的ないかにもモデルってモノを想定してるか風だけど実際はそんな場合もあれば、サーバーと通信するのを含むクライアント側サービス群としてドメインモデル部が構成されていてVMがそれとやり取りする、またはその折衷など。

自分が今やってるMVVMのスマホ案件では後者。
0645デフォルトの名無しさん2015/02/02(月) 10:35:23.44ID:ADaHz0nv
>>640
> 1:1:1にすると綺麗な設計にならない事は知ってるし、その辺の基礎はわかってるつもり

>>638
>あれって、V-VM-Mを1:1:1とかにすると難しいと思うんだけど、
>Model層の最上部はシングルトンで管理とかしてるわけ?
こんな疑問抱く奴が基礎がわかってるとは思えない。
0646デフォルトの名無しさん2015/02/02(月) 12:53:05.69ID:oCKieM5N
>>644
MVVMってModel部分が表示に使われるマスターデータ保持する必要あるはずで、
いわゆるサービスだけで構成するのは無理でない? と思って。
VMが直にサービスとやりとりすると、UIの変更が呼び出し含むロジック部分まで足出ちゃう気がする
0647デフォルトの名無しさん2015/02/02(月) 13:03:04.39ID:hdSLB4+T
なんかおかしなことなってるなー
MVVMはアプリケーションアーキテクチャなんだから、P層とD層が分離されてりゃいいわけだし
みんな一回PoEAA読んでみるといいよ
0648デフォルトの名無しさん2015/02/02(月) 13:07:40.78ID:oCKieM5N
>>647
そりゃそうなんだけど、
実際綺麗に作ろうとする時にどうやってる? 的な事を聞きたくてさ
職場の限られた知見だけだと洗練されなくてつらい
0649デフォルトの名無しさん2015/02/02(月) 13:55:32.75ID:1LhX7F9a
>>646
取引データを表示するような画面があったとして、モデル部の方は
・VMからの要求によってその時点での内容をサーバーに要求してそれを返すだけのリクエスタ
・サーバーとコネクションを貼りながらリアルタイムにそのユーザーの取引内容を取得しておき、VMから要求したときには今持ってる内容から要求に合わせてフィルタしたものなどを返す取引データマネージャー君

とかいくらでも要件に合わせて作りようがあるわけで、お前がサービスと言ってるものが何か知らんけど頭を柔らかくして理想的にあるべきシステムは何かを考えてったら自ずとどういう構成がいいか見えてくるんでは(´・_・`)
0650デフォルトの名無しさん2015/02/02(月) 14:06:30.51ID:oCKieM5N
>>649
やりたい事はその例で言えば後者の「サーバーと(中略)マネージャ君」が近いけど、
その時にModel部のインスタンシングのタイミングを含めた所をどうやってるか聞きたいだけで、
要件によって良い構成が違うのは当たり前じゃない

ああ、こういう場合ならどうするって言い方すりゃいいのかな?
リアルタイムに株価を表示して注文したりするシステムを作るとして、
顧客の要求が画面レベルではコロコロ変わることが想定されていて、
コアとなるアプリケーションの振る舞い(Model層以遠)と
View(とViewModel)を厳密に分離したい。

この時、ViewModelが監視する対象とするModel層に属するクラスのインスタンスを
どうやって管理する? あるいはしてる?
っていう事を聞きたかった
0651デフォルトの名無しさん2015/02/02(月) 14:46:00.95ID:ADaHz0nv
>>650
> この時、ViewModelが監視する対象とするModel層に属するクラスのインスタンスを
> どうやって管理する? あるいはしてる?
> っていう事を聞きたかった
何言ってるんだか全然わからんわ。
0652デフォルトの名無しさん2015/02/02(月) 22:30:47.39ID:iVt62pZQ
>>650
もう少し聞きたいことを最初から明確にしないと誰も答えられんよ。

モデルとビューをどう分けるかって話じゃなくてMVVMでやった時にModelをどのタイミングで消せばいいのかインスタンス管理のいい方法を知りたいってことでいいのかね?

であればMVVMで1-1-1になってるとして、削除の基準がVからかMからかで違うと思うが削除すべき時に死ねばいいんじゃないの?
Mを管理してるくんがいるならそれに俺は死にますと言って管理から外してもらって死ねばいいだけだし。

ただその株のデータ表示なら株データ管理くんがいるとしてVMが直結すればいいだけと思うが。Mで抽象化なり整理する必要あるの?
0653デフォルトの名無しさん2015/02/03(火) 17:47:03.80ID:vk5X3Hbw
このページに書かれてるようなことなのかな。

MVVMのModelにまつわる誤解
http://ugaya40.hateblo.jp/entry/model-mistake
0654デフォルトの名無しさん2015/02/03(火) 18:43:29.57ID:TZB29Y9v
いつの間にかugaya復活してたのか
てか生きてたのか
0655デフォルトの名無しさん2015/02/03(火) 22:32:46.95ID:aCjPoInO
うがや氏のいうほどVMをシンにする必要もないと思うけどね
複数のVMから見られるとか、ファットになりすぎたので纏めるとかではするけれど。
原理主義になることなく必要な範囲で適切に分離すればいいだけ。
0656デフォルトの名無しさん2015/02/03(火) 22:58:19.57ID:PgCJl36y
MVVMってV-VMのバインドが一番本質的で手を入れないといけない場所だと思うんだけど、なんでそれをMから制御しないといけないの
VM二層に分けてるだけなんじゃないのかな
0657デフォルトの名無しさん2015/02/03(火) 23:46:22.23ID:X/p19c8g
MVVMでasync, awaitってどうやればいいの?
0658デフォルトの名無しさん2015/02/04(水) 06:22:40.67ID:opCAQe15
やるのに何か問題が?
0659デフォルトの名無しさん2015/02/05(木) 21:17:37.70ID:TA3CE4tW
>>656
Mから制御する必要ないっていうのがMVVMやろ
0660デフォルトの名無しさん2015/02/05(木) 22:49:53.62ID:FZgHg23p
俺じゃなくてugayaとかいうクソに言ってくれ
0661デフォルトの名無しさん2015/02/05(木) 22:53:37.46ID:TA3CE4tW
ugaya40はMがVMとかV意識すんなクソとかよく言ってんじゃん
0662デフォルトの名無しさん2015/02/05(木) 23:01:27.37ID:FZgHg23p
俺には>>661>>653が真っ向から矛盾しているようにしか見えないから
ただの頭のおかしいおっさんの戯言なんじゃね?
0663デフォルトの名無しさん2015/02/05(木) 23:10:41.33ID:TA3CE4tW
>>662
ugayaの主張は画面ロジック用Model用意しろよって奴だろ?
特に矛盾してないんじゃねえの
0664デフォルトの名無しさん2015/02/05(木) 23:22:55.05ID:FZgHg23p
矛盾しているのは>>659>>663のMの意味だね
0665デフォルトの名無しさん2015/02/05(木) 23:26:59.18ID:TA3CE4tW
>>664
画面を表現するModel層に居るクラスとその他Modelだけでシステム的には完成していて、
VMは画面Modelのイベントをトリガーにプロパティ見に行って画面に勝手に反映しろ
って事だと俺は理解したが
0666デフォルトの名無しさん2015/02/05(木) 23:51:05.70ID:FZgHg23p
>>665
それMVVMでは通常VMに分類される機能を分割して下側をMVCのノリでMと呼んでるだけじゃないの?ってのが>>656
0667デフォルトの名無しさん2015/02/05(木) 23:53:14.94ID:TA3CE4tW
>>666
その分類が間違ってるって話じゃないの? >>653 って
0668デフォルトの名無しさん2015/02/06(金) 00:37:19.25ID:y2jAaFN1
MVVMがCをネグったせいで混乱しているように思えてならない。
0669デフォルトの名無しさん2015/02/06(金) 07:46:15.81ID:8HEPQWi+
何の実にもならない話
0670デフォルトの名無しさん2015/02/06(金) 07:47:23.88ID:Ql31eeca
ugaya氏の言ってるのの一つはファットなVMが中に詰め込んでる画面用含むロジックをM側に持ってけや、VMはただ要求を上に上げて上で上がったイベントをよしなに下に伝えるだけの馬鹿になれってことだと思うが。
0671デフォルトの名無しさん2015/02/06(金) 20:04:03.13ID:RHPXxKct
よくある、Mって言葉の合意が取れていないだけの話だな。
0672デフォルトの名無しさん2015/02/06(金) 20:46:30.69ID:vevPP1Wk
合意とは言ってもDBを使うMVVMの最小構成だとエンドが決まっているからWPF⇔VM⇔ORMにならざるを得ないよ
その次に増やすとしたらugaya流Mよりビジネスロジックのが先だろうからugaya設計の出番は最低でも5層アーキからってことになる
そんなのを一般論のように掲げるのはちょっとおかしいだろ
0673デフォルトの名無しさん2015/02/06(金) 21:04:03.06ID:RHPXxKct
DBがあったり、DDD的なドメインロジックがあったり、っというところからして合意はとれていないと思うな。
話の中で想定されているアプリケーションは、Twitterクライアントなのかもしれないし。
0674デフォルトの名無しさん2015/02/06(金) 23:26:00.78ID:tPEv492S
まんこが実在しないようなものだな
0675デフォルトの名無しさん2015/02/07(土) 16:52:57.42ID:PQ3B7sw+
>>670
VMが必要になる時点で色々おかしい

俺はMVVMなんていってる内はWPFは普及しないと思ってる
V/Mになったら呼んで
0676デフォルトの名無しさん2015/02/07(土) 16:59:47.72ID:DCqCAXws
MVVMが筋が悪いとは思わないけど、
まあ大半のプログラムはVMじゃなくてコードビハインドに書いちゃった方が見通しがいいよねw

モデル部分までコードビハインドに書いちゃう無設計はもちろん論外だが。
0677デフォルトの名無しさん2015/02/07(土) 17:33:42.38ID:82UCkKHf
>>675
別にMVVMじゃなきゃ作れないなんて話は無いんだが…
けど俺的にはMVVM以外でUI作るのはごめんだわ
MFCの頃からUI作ってるけどMVVMで分けるのが今んとこ一番しっくりくる。
ビューに絡むコードビハインドも必要ならかくしうがや氏のいうようなシンVM原理主義でもないので適度にファットなVMだけど。

>>676
ビューに絡むのはコードビハインド書くの厭わないけど、全部そこに書くのはよっぽど簡単なテストの必要すらないコントロール以外やらんわー
0678デフォルトの名無しさん2015/02/07(土) 18:20:54.71ID:PQ3B7sw+
コントロールにイベントと同じだけの
コマンドが実装される日は何時なの?
0679デフォルトの名無しさん2015/02/07(土) 20:16:51.69ID:InEScubz
ロードマップをごらんになりましたか?
MSの投資先はすでに他に移っており、WPFに機能を追加する気はありません
今後行われるのはパフォーマンスの向上とバグ修正くらいなものです
故にあなたが望む未来は永久に訪れません
0680デフォルトの名無しさん2015/02/07(土) 20:20:03.74ID:qUv52GO0
他ってそんなのあったっけ?
0681デフォルトの名無しさん2015/02/07(土) 20:34:01.78ID:Xp9IHq1a
プラットフォームと仮想化の方で忙しいってことかと。
そっちの方面は調子いいもんな。
お払い箱を告げられたモバイルやRTと違って。
0682デフォルトの名無しさん2015/02/07(土) 20:39:58.69ID:eMOSZTzl
RTさんはRaspberry Piで復活しそうだけど
0683デフォルトの名無しさん2015/02/10(火) 15:07:16.37ID:+I0NGchr
>>679
まじかよ、wpfオワコンなの?
0684デフォルトの名無しさん2015/02/10(火) 16:14:08.57ID:NZ3MCRWw
終わっ「た」と過去形にするほど始まってない
0685デフォルトの名無しさん2015/02/10(火) 16:34:55.09ID:wU2cn4pE
アレか。俺達の冒険はこれから始まる!で最終回みたいなアレ
0686デフォルトの名無しさん2015/02/10(火) 21:17:48.22ID:goP12br0
ストアアプリが主になるからな。
結局のところ、WPFとほとんど変わらんと。
0687デフォルトの名無しさん2015/02/10(火) 21:36:31.26ID:6GP4C07+
>>686
何度それはありえないって説明しても定期的に湧くなこの意見w
0688デフォルトの名無しさん2015/02/10(火) 21:39:34.04ID:NN8LXSdA
ストアアプリが流行ってる世界から書いてるのよ
0689デフォルトの名無しさん2015/02/12(木) 11:41:48.25ID:E5Mv2Dat
なんでMSはLivetレベルのものを組み込みで最初から提供しないんだ
0690デフォルトの名無しさん2015/02/12(木) 11:55:20.29ID:WU7UMI6b
暇人と違って忙しいんだ
0691デフォルトの名無しさん2015/02/12(木) 13:27:07.22ID:E5Mv2Dat
MVVMが思ったより広がらないのは、MSの怠慢のせいだ
0692デフォルトの名無しさん2015/02/12(木) 15:00:42.65ID:szuZ+kMK
IDEがそう作るように仕向けない限り普及せんわな
概念として促すだけでユーザ丸投げじゃなぁ…しらんやつはしらんのだわ。MVVMなんぞ
0693デフォルトの名無しさん2015/02/12(木) 23:29:39.50ID:VlG3+PCN
Microsoft.Expression.Interactions.dll
System.Windows.Interactivity.dll
せめてBlendのこの2つがデフォで入ってれば全然違うのにと思う
0694デフォルトの名無しさん2015/02/13(金) 00:30:47.33ID:wZDongBq
Livetそんなにいいかなあ
ソース見たらいろいろ握りつぶしてあったりして信用がならない
ダイアログとかも処理法が突っ込みいれたくなる
0695デフォルトの名無しさん2015/02/13(金) 06:09:15.12ID:PnXF9YQo
>>694
WPFにべったり特化してる分使いやすいよ
あと小さいからソース読みやすいのが個人的には良い
0696デフォルトの名無しさん2015/02/13(金) 06:33:41.46ID:5o25IZNR
>>689
ほんと謎。
0697デフォルトの名無しさん2015/02/13(金) 10:48:23.37ID:bOvRzLgH
>>694
同感

コマンドや同期周りもおかしかったし、高品質なライブラリとは言えないね

使いながらLivetの改良に積極的にコミットするつもりなら採用してもいいんじゃないかな
0698デフォルトの名無しさん2015/02/13(金) 13:04:38.89ID:XSQVLgMO
>>694
Livet以外使ったことないんだよ
他の有名どころも時間かけて評価する暇なんかなかったし
0699デフォルトの名無しさん2015/02/13(金) 16:30:43.37ID:NFnP7gar
prismのErrorsContainerが欲しいな
0700デフォルトの名無しさん2015/02/13(金) 17:33:27.81ID:XSQVLgMO
あらためてMVVMライブラリについて検索してみたけど、ちょろっと使ってみました系のものがほとんどだった。
Javascriptだとこういうページがあるんだけど、MVVMライブラリでも似た感じのものないかな?
TodoMVC
Helping you select an MV* framework
http://todomvc.com/
0701デフォルトの名無しさん2015/02/15(日) 11:58:11.41ID:8QvHJbe8
wpfのMVVMって、理論的な設計じゃなくてパフォーマンスや非同期との親和性から強制を余儀なくされてるって認識。
がちがちなフォームアプリにくらべて見通しが良くなったとはとても思えないし、改修しやすいともおもわない
0702デフォルトの名無しさん2015/02/15(日) 12:04:24.39ID:fbap6qPV
Viewに絡む部分を大分薄く出来ていいと思うけどね。
他にいいアーキテクチャって何があるのよ
0703デフォルトの名無しさん2015/02/15(日) 16:55:48.43ID:AnBV+qA5
一カ所にソースを放り込めることが見通しっていうのであればそうなんだろうな
0704デフォルトの名無しさん2015/02/15(日) 18:01:35.80ID:UPOIc5dE
UIの疎結合性/柔軟性の代わりにパフォーマンスや非同期部分が微妙であるフレームワークがある現実を前に、
それに合ったMVVMみたいなアーキテクチャを採用しないからダメダメになるんだよForm脳は
0705デフォルトの名無しさん2015/02/15(日) 18:09:12.22ID:uxAoEDAd
WPFのMVVMに限ればゴミなのは否定できねえわ。XAMLもクソだしライブラリのサポートもクソ。クソアンドクソ。
0706デフォルトの名無しさん2015/02/15(日) 18:21:10.44ID:A0a3xwJ9
VMまわりのライブラリが糞
マイクロソフトがろくに実装できない時点で
そもそも思想からして間違っていると言える
0707デフォルトの名無しさん2015/02/15(日) 18:23:29.81ID:AnBV+qA5
VMなんて誰でも作れるから勝手にやれやってスタンスにしか見えないけど
0708デフォルトの名無しさん2015/02/15(日) 18:28:09.94ID:uxAoEDAd
思想は別に間違ってるとは思わんなあ。
MVVMが唯一解だとも思ってないけど。
0709デフォルトの名無しさん2015/02/15(日) 18:30:19.49ID:uxAoEDAd
大したフォローをする気もないくせに、MSのブログでMVVMパターンをお勧めしたのが過ちの始まりだった。
あの開発者まだ開発してるんだろうか?
0710デフォルトの名無しさん2015/02/15(日) 18:58:21.49ID:UPOIc5dE
>>706
Microsoftが開発しているMVVM対応ライブラリは2つもあるわけだが?
0711デフォルトの名無しさん2015/02/15(日) 19:51:00.63ID:jdTgUrjz
なんで2つなんだ?
音楽性の違いで仲間割れでもしてるのか?
0712デフォルトの名無しさん2015/02/15(日) 21:05:04.55ID:GzjfaC2V
ComboBoxのSelectionChangedイベントがコードによるものかUIによるものか一発で見分ける手段ってないものかな…
0713デフォルトの名無しさん2015/02/16(月) 00:16:21.53ID:CrHFSfx8
eventargsを継承してなんか付け足してコードのときはソッチ渡して発生させたらいんじゃね
継承できたかシランけど
0714デフォルトの名無しさん2015/02/16(月) 19:21:50.82ID:fI963aAP
継承できないEventArgsとか何の意味もないな
0715デフォルトの名無しさん2015/02/19(木) 09:33:58.46ID:Mt3XTzzF
expanderの中にチェックボックスを配置してそれをVMとバインドしていて、そのチェックボックスでデータグリッドの列の表示表示を切り替えているんだが
どうも一度expanderを開かないとVMとチェックボックスがバインドしなくて、開かないままだとVMからデータグリッドの列の制御がうまくいかない

expanderを開かずにVMと同期させる方法があったら教えて下さい。なければ初期化時に開くしか無いだろうが
0716デフォルトの名無しさん2015/02/19(木) 13:17:55.78ID:QKlW2z7T
ObservableCollectionを継承してOnCollectionChangedを公開して展開時に呼んでやるとかは?
試してないぞ
0717デフォルトの名無しさん2015/02/19(木) 19:04:26.56ID:PvzcK4yQ
>>715
コントロールが生成されるまでバインディングされない
ListboxなどのItemsPanelControlを継承してるコントロールでVirtualizingを有効にしててもはまる
0718デフォルトの名無しさん2015/02/19(木) 19:06:47.61ID:PvzcK4yQ
>>715
というか、チェックボックスで制御するんじゃなく、VMのプロパティと表示非表示をバインディングすれば?
0719デフォルトの名無しさん2015/02/19(木) 20:12:07.62ID:WmNRMUFg
DataGridでRowを取るためにScrollToしなければならないってウンコノウハウもあったな
切って問題ないなら仮想化を切った方がいい
0720デフォルトの名無しさん2015/02/19(木) 22:01:22.25ID:0YVtd4lI
つーかそういう仮想化がWPFにはあるから、バッキングストアのVMがあるんだろ?
VMに状態置いておけば、Vが仮想化してようがいまいが意識する必要ないと思うが。
0721デフォルトの名無しさん2015/02/19(木) 22:36:27.51ID:amIzamNq
ugaya氏もなんかのコントロールで開き直すと前の選択状態がーとか言ってた気がするが、なんでVMでもってないのとか思ったの思い出した。
0722デフォルトの名無しさん2015/02/21(土) 09:11:03.27ID:QoAL1P4U
>>717
TreeViewのContextMenuのIsOpenをバインドした時、最初の右クリックを失敗するのはその関係なんですかね?
0723デフォルトの名無しさん2015/02/21(土) 13:54:32.05ID:bOBLMWsa
MSが新しいことはじめたらだいたい糞だろ。
0724デフォルトの名無しさん2015/02/21(土) 16:27:31.93ID:jWUDO970
別にそうとも限らないよ。
ただ、今までできたことができなくなると大問題。
0725デフォルトの名無しさん2015/02/22(日) 17:02:14.59ID:LBixWBIA
>>720
VMでアイテムが選択状態かどうか保持するプロパティを持たせる
その選択状態とListBoxItemのIsSelectedをBindingする
VM側でまだコントロールが生成されてない(表示されてない)アイテムの選択状態プロパティを変更する

仮想化してなければ普通にスクロールされてアイテムが選択状態になる
ところが仮想化されてるとListBoxには何の変化も起きない
0726デフォルトの名無しさん2015/02/22(日) 17:19:47.76ID:A2RKkiUD
え、そんな動作にならないけど。

何か余計な事でもしてるんじゃない?
0727デフォルトの名無しさん2015/02/22(日) 17:46:42.78ID:Oh5yzEuy
>>725
そんな動きしてるとしたら仮想化の実装自体が腐ってるんだが。
VMの状態をコントロールが反映しないでどうする
0728デフォルトの名無しさん2015/02/22(日) 20:27:56.20ID:LBixWBIA
ListBoxItemのIsSelectedにバインディングするだけだって
それがだめって言われれば仕方ないが

仮想化されてると表示されてないアイテムはまだ生成されてないからBindingされてないので反映されない
一度スクロールして表示すると反映されるようになる
0729デフォルトの名無しさん2015/02/22(日) 20:36:53.51ID:LBixWBIA
あ、すまん
選択状態は反映される
フォーカスでこれやるとだめ
0730デフォルトの名無しさん2015/02/22(日) 20:41:01.60ID:LBixWBIA
選択状態でもなるか
元々選択されてたアイテムの選択状態をfalseにせずに、表示されてないアイテムの選択状態trueにすると、仮想化してる時としてないときで動き変わる
0731デフォルトの名無しさん2015/02/22(日) 21:11:14.01ID:/AfxHGyO
>>725
つかぬことをお尋ねしますが、俺はListBoxItemなどにモデルを直接バインドしていたけど
VMを噛ませる方が正当なんですか?皆どうしているのか気になっただけで他意はありません
0732デフォルトの名無しさん2015/02/22(日) 22:03:32.62ID:tq8+HI3u
仮想化(VirtualizingPanel)の実装は腐ってるだろ
それは紛れもないことだ
0733デフォルトの名無しさん2015/02/22(日) 22:49:24.53ID:HdQJajIv
そういうセリフは実装に対する知識を見せてからでないと共感を得られないと思うぞ
0734デフォルトの名無しさん2015/02/23(月) 07:42:59.41ID:vTCWNzEv
>>731
モデルからVMテンプレート吐き出すツール使ってるから必ずVMかませてるけど、そういうのないと、面倒だしな
モデルとVMが全く一緒ならかませる意味ないというかモデルのプロパティ追加忘れたりするデメリットになる
VM作らないのが正当かどうかは自分が決めれば良い
0735デフォルトの名無しさん2015/02/23(月) 07:50:34.97ID:B9nSE12P
バインドにM使うのは問題ないけど、純VM的な要件が増えた場合に手を抜いてMに入れるのはNG
0736デフォルトの名無しさん2015/02/23(月) 08:27:14.78ID:vTCWNzEv
逆にモデルにコマンド持たせたりメッセージボックス表示したりはNG
0737デフォルトの名無しさん2015/02/23(月) 09:35:37.72ID:8dAitpX+
>>734
少し説明がわかりにくかったようですいません。DataContextに突っ込むオブジェクトはVMかますべきだと思っているが
ItemsSourceに突っ込むのはどうしているのか気になったんですよ
件のIsSelectedが実装されているのはItemsSource系のオブジェクトだからね
0738デフォルトの名無しさん2015/02/23(月) 09:42:38.10ID:vTCWNzEv
>>737
そういう意味ではVMかましてる
IsSelectedなんてのはモデルに持つものじゃないから
0739デフォルトの名無しさん2015/02/23(月) 09:48:04.97ID:vTCWNzEv
まあ、ケースバイケースだとは思うけど
IsSelectedにBindingするプロパティがモデルに対して作用するものならモデルに持たせる話だし、選択したものを削除みたいな話ならVMにわけるべきだと思う
0740デフォルトの名無しさん2015/02/23(月) 11:23:44.91ID:8dAitpX+
>>738
原理原則から言ったらVM持つのが正論だろうが、モデルのコレクションとVMのコレクションが二重化されて
バグの元になりそうで怖い
モデルでコレクションにアイテムを追加削除した場合、どういう設計でVMに反映させているのか教えてもらえませんか?
0741デフォルトの名無しさん2015/02/23(月) 11:41:25.51ID:B9nSE12P
大抵の場合Mなんて非接続型でも十分じゃね
0742デフォルトの名無しさん2015/02/23(月) 12:04:14.39ID:vTCWNzEv
>>740
Stackoverflow のMVVM SYNC COLLECTION スレッド(?)にモデルのコレクションとVMのコレクションを勝手に同期とってくれるクラスが載ってるから見てみると良いかも
そのままだとM→VMは同期取れるけど、VM→Mの同期はとれないから、VM側のコレクションはReadOnlyObservavbleCollection返すのと、CollectionChangedにWeakEventHandler使うようにした改良版使ってる
0743デフォルトの名無しさん2015/02/23(月) 12:13:21.46ID:vTCWNzEv
ReadOnlyObservavbleCollection返すのは誤ってVM側のコレクションを操作しないようにってことね
コレクションの操作は一貫してモデル側で行う
VMコレクションに操作を許してモデルに反映させるなんてのはしないし、やっちゃいけないと思ってる
0744デフォルトの名無しさん2015/02/23(月) 12:32:44.39ID:B9nSE12P
グリッド上のダーティな新規データとかも直接モデルに書きこめと?
0745デフォルトの名無しさん2015/02/23(月) 12:51:13.83ID:8dAitpX+
>>742
とりあえず発見したから時間を見て読んでみます。有難うございました
http://stackoverflow.com/questions/1256793/mvvm-sync-collections
0746デフォルトの名無しさん2015/02/23(月) 14:13:43.66ID:vTCWNzEv
>>744
逆にきくけど、新規行なんかはモデルをもってないVMに退避してるってこと?
0747デフォルトの名無しさん2015/02/23(月) 14:21:26.53ID:vTCWNzEv
まあ、言い方悪かったかな
やっちゃいけないと言うのは俺の中でのルールね
他人に押し付ける気はないし、俺が採用してる方法がベストとも思ってないから「良いかも」なんて書き方した
0748デフォルトの名無しさん2015/02/23(月) 14:57:59.69ID:bL49Hgzs
楽しそうな議論だ
WPFをやっているとこうなるのか
0749デフォルトの名無しさん2015/02/23(月) 15:47:07.68ID:BV5+1OQh
>>742
ViewModel使ったことないから、質問したいんだけど、「モデルのコレクションとVMのコレクション」って
class Model { }
class ViewModel {
 private Collection<Model> modelCollection;
}
ってこと?それとも、
class Model { }
class ModelCollection {
 private Collection<Model> modelCollection;
}
class ViewModel {
 private ModelCollection collection;
}
ってこと?あるいは、
class Model { }
class ViewModel {
 private Model model;
}
class ViewModelCollection {
 private Collection<ViewModel> collection;
}
なのかな?
三つ目は多分ないと思うけど・・・。
0750デフォルトの名無しさん2015/02/23(月) 16:04:35.05ID:CTkiKWOH
C++作った人のジョークのインタビュー記事が昔あったけど、
C++をWPFに置き換えて同じ筋書で記事が書けそうだ。
0751デフォルトの名無しさん2015/02/23(月) 16:43:24.95ID:fdQCs84d
>>749
Modelも、VMもObCollection<Hoge>を持ち
なんらかの手段で両者を連動させる。
0752デフォルトの名無しさん2015/02/23(月) 16:59:50.29ID:5h1cL4YB
>>749
3が一番近い気がするが

Model2のコレクションをもつModel1があります
Model1のビューモデルであるVM1はModel2のコレクションをそのまま返すか、Model2のビューモデルであるVM2のコレクションを返すのか?
VM2のコレクション返すなら、その同期はどうやってとるのか?

というのが元々の話
Model2のコレクションにアイテム追加したり削除したらVM2のコレクションからも追加、削除しないとあかんだろ?
0753デフォルトの名無しさん2015/02/24(火) 07:54:10.93ID:pSXif3Rr
久しぶりにWindowsPhoneが出るぞー。
あ、要らないですwww
0754デフォルトの名無しさん2015/02/24(火) 10:55:38.15ID:9wamdPj6
>>752
> 3が一番近い気がするが
え、そうなんですか。俺はいろいろ勘違いしてた気がする・・・。

例えばTwitterクライアントだと、こんな感じですか。
class TwitterModel {}
class TwitterVM {
 private TwitterModel tweet;
}
class TwitterVMCollection {
 private Collection<TwitterVM > tweetVMCollection;
}

これだと、「tweetの追加メソッド」はどこにあるんでしょうか?
0755デフォルトの名無しさん2015/02/24(火) 11:02:56.62ID:x+7W+/ZC
Model2のコレクションを持つModel1、つまり
TweetModelのコレクションを持つTwitterModelはどうしたよ
0756デフォルトの名無しさん2015/02/24(火) 13:42:16.16ID:9wamdPj6
>>755
ますます混乱してきました。

class TweetCollection (Model1) {
 private Collection<TweetModel> tweets;
}
class TweetModel (Model2) {}
class TweetCollectionVM (VM1) {
 private TweetCollection tweets;
 private Collection<TweeVM> tweetVMCollection;
}
class TweetVM (VM2) {
 private TweetModel tweet;
}
ということなんでしょうか・・・。
0757デフォルトの名無しさん2015/02/24(火) 18:10:18.45ID:mW2DSG//
モデル
class TwitterClient{
public Collection<Tweet> Tweets;
}
class Tweet{}

ビューモデル
class TwitterClientVM{
TwitterClient _model;
public Collection<TweetVM> TweetVMs;
}
class TweetVM{
Tweet _model;
}

TweetsとTweetVMsの同期をどうとるか?
0758デフォルトの名無しさん2015/02/24(火) 19:00:17.21ID:9wamdPj6
>>757
もともと、ぼんやりと持っていたMVVMのイメージと全然違ったんですが、あるオブジェクト(Model)と、その集合を
扱う場合、一般的にその構造にするものなのでしょうか?
0759デフォルトの名無しさん2015/02/24(火) 19:24:35.68ID:KsFfzAtK
>>758
好きにしろって言ってるだろ
手法の一つ提示しただけだ
0760デフォルトの名無しさん2015/02/25(水) 10:16:26.09ID:6XiXkLWg
Collection<ViewModel>は煩雑になるからなるべく避けるべき
Tweetの例ならVMが直接Collection<Tweet>を公開すればいいよ
コマンドのバインディングとか必要な場合でも一旦メインのVMで一括して受けた方が楽
0761デフォルトの名無しさん2015/02/25(水) 10:17:11.17ID:G9xqzW0/
>>759
コレクションとコレクションの同期ってどういうこと?っていう疑問を解消したかっただけですので。
別のやり方があるとわかって安心しました。
0762デフォルトの名無しさん2015/02/25(水) 10:19:48.43ID:G9xqzW0/
書き込み中に新レスが。

>>760
> Collection<ViewModel>は煩雑になるからなるべく避けるべき
> Tweetの例ならVMが直接Collection<Tweet>を公開すればいいよ
俺が、ぼやっと想像していたMVVMの姿ってそれだったんです。
>>749の2番目みたいな感じじゃないのかって思ってた。

そのやり方でもできるとわかって、MVVMを学習する意欲が出ました。
0763デフォルトの名無しさん2015/02/25(水) 12:33:14.79ID:MitYub1L
モデルの設計って顧客なら顧客の性質や振る舞いを唯一絶対のクラスとして設計するってことじゃなくて
あくまで関心の対象領域(業務)をモデル化するんであって、顧客クラスはその限定された中の登場人物に過ぎないよ
同じDBを見ててもそれぞれ関心の全く違うシステムなら別の顧客クラスがあって然るべきで、
モデルをビューの都合で汚さないことにそこまで潔癖になる必要はない
0764デフォルトの名無しさん2015/02/25(水) 12:43:45.96ID:1WdcdUPu
>>760
煩雑になるのはVM側のコレクションの操作を許したり、同期を手動でやるからだ
0765デフォルトの名無しさん2015/02/25(水) 12:46:32.33ID:1WdcdUPu
あとメインのVMで、とかやるぐらいならモデル汚したほうが良いだろうな
階層構造とかどうすんだみたいな話にもなるし
0766デフォルトの名無しさん2015/02/25(水) 16:10:57.92ID:1WdcdUPu
>>760
質問なんだが、その方法でメーラーみたいなアイテムを複数選択可能で選択したものを削除、とか条件に一致したものを選択状態(チェックをつける)にする、みたいな処理をどう記述するんだ?
0767デフォルトの名無しさん2015/02/25(水) 16:19:13.42ID:p+1nQsEt
SelectedItemsをVMと同期するんでしょ

標準ではできないから、そういう添付プロパティを用意しておく必要はあるけど
0768デフォルトの名無しさん2015/02/25(水) 16:32:10.27ID:SmT1rFL5
>>766
表示するだけのものだったらそのままでいいし、それ以上のことしたかったらIPropertyChangedなりなんなりつければいいだけ。
MVVMの本来の目的と、それがどう解決されてるかを考えれば自ずと答えは出ると思うんだけどな
0769デフォルトの名無しさん2015/02/25(水) 18:32:08.99ID:wVqr5ecw
>>767
確かに>>766の例ならそれでいいな
ただ、条件に一致したものは赤文字表示、それとは別に選択状態持つと無理だし、
アイテムが選択されているかどうか調べる計算量はNxNになるし、部分集合が増えれば増えるほど
同期とるのが面倒だったり同期し忘れたりするでしょ
0770デフォルトの名無しさん2015/02/25(水) 18:33:46.17ID:wVqr5ecw
俺もDataGridにDataSetそのまま突っ込んだりはするけどw
0771デフォルトの名無しさん2015/02/26(木) 01:16:20.91ID:oKoUOdLg
流れ見てて思ったんだが
Vにバインドされないな意味でVMじゃなくね?
Vのデータコンテキストでバインドせずに、個別にバインドすると管理大変じゃね?
ある依存プロパティにバインドされた値を変更したからって、別の依存プロパティにバインドされた値が反映されたことを期待するのは本質的にV直接操作してるのと変わらなくないし、WPF的には保障されないでしょう?

という疑問がよぎった。
明後日の方向のこと言ってたらごめん
0772デフォルトの名無しさん2015/02/26(木) 01:17:20.69ID:oKoUOdLg
あれ、色々日本語になってない、、、家に帰ってから書き直す
07737712015/02/26(木) 02:54:34.89ID:PXLMJNGg
VにバインドされないVMは、VMって呼ぶのは適切じゃないような気がする。プロキシとかアダプタとかMとCとかそんな関係かと
Vのdatacontextにバインドせずに、個別にバインドすると↓の原則もあるし、見づらい気がする
WPFとしては、ある依存プロパティと別の依存プロパティの値が、同期的に値を保持されているのを期待するのは、そもそも間違ってる
理論的にも、Vを直接操作しようとしてしまう状態と、本質的に変わらない

>>769
描画領域が変わらない範囲ならビヘイビア・VisualStateManager辺りで自由にitemのプロパティを値を元に決定する、はず?
0774デフォルトの名無しさん2015/02/26(木) 08:16:07.97ID:blFDmu++
MVVM教宗派争い
0775デフォルトの名無しさん2015/02/26(木) 08:35:51.38ID:rnY64eLq
宗教と同じで不安なんだよ
自分の中で割り切れるくらい経験を積めば自然に治る
まだまだベイビーちゃんばかりだ
0776デフォルトの名無しさん2015/02/26(木) 09:18:24.19ID:aGxC82w9
手段と目的を間違えることこそが、最大のアンチパターンだってじっちゃんが言ってた
0777デフォルトの名無しさん2015/02/26(木) 09:27:08.91ID:MEigcXOU
ビジネスロジックとプレゼンテーションを分けるのは大きなクラスだと威力があるけど
小規模なクラスならごっちゃにしたほうが解りやすいよな
0778デフォルトの名無しさん2015/02/26(木) 11:09:15.42ID:/+AXEgAN
>>777
ごっちゃにするメリットってとりあえずすぐかけるだけでそれもメリット薄いしすぐその弊害出て来る。自分の経験上では。
F#だとデータ型作るのも楽だしほぼ全てMVVM的にやって快適です。

つーかMVVMの定義とか仕組みに踊らされすぎだろ。
別に必要なければ素のクラスでいいし必要なら通知の仕組みなど入れればいいだけ。分離できて綺麗にかけて動けばいいんだよ
0779デフォルトの名無しさん2015/02/26(木) 11:15:51.95ID:rJrYfait
>>775
禿同意
0780デフォルトの名無しさん2015/02/26(木) 11:58:33.10ID:2wsA1wo7
>>778
> 分離できて綺麗にかけて動けばいいんだよ
それを実現するには大量のコードが必要になるわけで
0781デフォルトの名無しさん2015/02/26(木) 12:11:45.35ID:5yXxUYv/
F#は相互参照に難があるのでちょっとなぁ・・・
関数型だから宣言的に書けるかと思ったのにがっかりだよ

C#7に期待したい
0782デフォルトの名無しさん2015/02/26(木) 12:23:51.78ID:5yXxUYv/
>>780
だからF#なんじゃないか?
F#ならC#より少ないコードで書ける

俺はC#で書きたかったので、今は静的コード生成に頼ってる
以前は動的コード生成でやってたんだが、実行時の遅さが無視できなくなってきてね

数年たてばRoslynによるWPF支援フレームワークとかも出てくるんじゃないかな?
0783デフォルトの名無しさん2015/02/26(木) 13:39:58.21ID:Zl1401DB
もうそろそろいいんじゃないか?
お前みたいな「やり方に拘る」タイプの連中は
みんなとっくにWPFなんか見限ってWebに行っちゃってるよ
楽しいぞWebは
0784デフォルトの名無しさん2015/02/26(木) 16:28:24.84ID:rnY64eLq
Webは賞味期限が短すぎる
少しは腰を落ち着けたいなう
0785デフォルトの名無しさん2015/02/26(木) 19:43:04.48ID:cGnKpNs3
同意
0786デフォルトの名無しさん2015/02/26(木) 20:46:17.33ID:FPelYsMd
ゆーてもjqueyは不動の地位やし、非同期したかったらnode.jsにさらに好きなライブラリ乗っけるスタイルして、サーバもhtmlもwindowsアプリもjsでよくね?っていう
0787デフォルトの名無しさん2015/02/26(木) 21:22:25.42ID:5769K/8F
INotifyPropertyChangedはModelでも積極的に使うものなの?
0788デフォルトの名無しさん2015/02/26(木) 21:29:31.89ID:0igy2WbD
VMを薄くしたい宗派の人は
0789デフォルトの名無しさん2015/02/26(木) 23:52:40.39ID:DUk+L+jH
>>787
http://ugaya40.hateblo.jp/entry/model-mistake
この辺読んでみるといいんじゃないかな
0790デフォルトの名無しさん2015/02/26(木) 23:58:42.60ID:yOo8sxrr
MVVM原理主義を紹介するのはやめろ
0791デフォルトの名無しさん2015/02/27(金) 06:34:38.23ID:PcQqIrJh
どっちかと言えばMVVMとしては非主流派のDDD原理主義じゃないか
0792デフォルトの名無しさん2015/02/27(金) 06:52:04.67ID:v/A3JJUH
これからは関数型の時代だというのにモデルの状態変化という概念にそこまで拘るのもな
というかモデルの本体って大抵はネットワーク越しにサーバーにあるもんだから、
クライアントのModelなんて単なる通信クライアントだよ
0793デフォルトの名無しさん2015/02/27(金) 09:20:12.04ID:cP25/4mO
VienwModel ってControler でよくね?
0794デフォルトの名無しさん2015/02/27(金) 09:48:31.80ID:4Ku2v7u7
>>793
でビューがモデルに直結すんの?
自分的にはMVCよりMVVMの方が責務が明確で好み。
0795デフォルトの名無しさん2015/02/27(金) 10:09:07.72ID:JQ+z3IAM
VMでMからのPropertyChangedを受けて処理を始めるのは悪く無いと思うけどね
モデルが何を表示するのかを決定しているわけじゃないからMVVM的にも問題ないだろうし
0796デフォルトの名無しさん2015/02/27(金) 10:16:39.09ID:0YJc/4A4
何が問題ないだよ
M直結で用が足りるならわざわざVMなんか要らん
VMなんかどうしても必要になってからでいい
MVVMの教義なんかより遥かに重要なのはDRYだよ
0797デフォルトの名無しさん2015/02/27(金) 15:00:43.14ID:my+0u8IU
なら別に全部M直結で用足りるじゃん。
頭悪いん?
0798デフォルトの名無しさん2015/02/27(金) 15:50:49.84ID:HeISCIzr
とすげー頭悪そうな書き込みがw
0799デフォルトの名無しさん2015/02/27(金) 17:02:41.47ID:JQ+z3IAM
VMでPropertyChanged受けると書いてあるのに何故直結だと言いはっているんだろう?
PropertyChangedはXamlじゃなくてもハンドリングできるわけだが
0800デフォルトの名無しさん2015/02/27(金) 19:01:43.49ID:nTU+bWfS
VMの役割がよく理解できてないから基本的にModel直結してるわ
VMはModelを束ねるだけ
趣味プログラミングだから特に困ったことはない
0801デフォルトの名無しさん2015/02/27(金) 19:35:48.46ID:v/A3JJUH
>>799
どのプロパティが変わったかswitchで判定するのか?w
PropertyChangedは人間が使うもんじゃないよ
0802デフォルトの名無しさん2015/02/27(金) 19:56:56.06ID:PcQqIrJh
Windows FormsでMVVMしてるとまあまあ頻繁にPropertyChanged利用せざるを得ないから謝れ
0803デフォルトの名無しさん2015/02/27(金) 20:05:49.60ID:kkoDllmu
そもそもWindows FormsでMVVMって出来るのか?
0804デフォルトの名無しさん2015/02/27(金) 20:23:06.65ID:v/A3JJUH
WinFormsならPresentationModel+PassiveViewだな
0805デフォルトの名無しさん2015/02/28(土) 05:46:45.33ID:Nys/sxvj
スレタイを声に出して100回ry
0806デフォルトの名無しさん2015/02/28(土) 11:13:08.82ID:hc+4Wmht
wpfはクソ だっけ?
ストアアプリでもないのにXAMLで作るって誰も得しないよな
0807デフォルトの名無しさん2015/02/28(土) 12:04:42.06ID:0qaXH1f4
すいません、このxmlなのですが
レイアウトの一番上はStackPanel。その下に色々あって、一番最後にListBoxがある。
そのlistboxの高さを、listboxの要素数に限らずウィンドウの高さいっぱいにしたいのですが
方法を教えて頂けますでしょうか
http://pastebin.com/Rfxi2RV8
0808デフォルトの名無しさん2015/02/28(土) 12:13:10.37ID:u2d/ZWEO
StackPanelにx:Name付けてHeightをバインドすればいいんじゃなくて?
0809デフォルトの名無しさん2015/02/28(土) 12:15:31.30ID:l+nQWLxR
StackPanel じゃなくて DockPanel を使う。
0810デフォルトの名無しさん2015/02/28(土) 12:31:32.48ID:0qaXH1f4
ありがとうございます、とりあえずDockPanelを使う方法にさせて頂きます。
0811デフォルトの名無しさん2015/02/28(土) 13:32:34.34ID:w7kc15Xm
GridとRowDefinitionsでもいいと思う
0812デフォルトの名無しさん2015/02/28(土) 13:40:44.35ID:ZM25yNzG
VSのデザイナでGridの上に適当にListView置いて四辺から伸びてる鍵ボタンをポチポチっと押すだけ
0813デフォルトの名無しさん2015/02/28(土) 18:12:01.63ID:BrOlRyDe
>>812
そういや大体手書きだからデザイナの使い方ってさっぱり分からんな
0814デフォルトの名無しさん2015/02/28(土) 23:51:54.74ID:6oY+Vq0l
一瞬デザイナー使おうとしたんだけどワケワカラン編集するから戻ってしまった(´・_・`)
0815デフォルトの名無しさん2015/03/01(日) 02:57:21.70ID:cyp+wkSl
>>806
高dpiで綺麗に表示するのは
wpfにしか無理
0816デフォルトの名無しさん2015/03/01(日) 13:44:48.24ID:hOgcRoIu
WPFじゃなくても高DPI対応ソフトは作れるし
Webアプリなら最初から高DPI対応だ
0817デフォルトの名無しさん2015/03/01(日) 14:02:43.35ID:XdGnHlJv
の文脈だったらWindowsでの話に決まってんじゃん。バカジャネーノ
0818デフォルトの名無しさん2015/03/01(日) 14:03:42.42ID:fFu5O6QJ
Webアプリw
0819デフォルトの名無しさん2015/03/01(日) 14:11:38.11ID:pZeLnU6y
そうやって草生やしてる間に世間は変化してるんだぞ
VSがWebベースになる日もそう遠くない
0820デフォルトの名無しさん2015/03/01(日) 14:21:25.44ID:Sga1DM1F
そうね
0821デフォルトの名無しさん2015/03/01(日) 15:31:55.13ID:9ZPcT+Db
スマホじゃむしろwebアプリ離れが進んでるような
0822デフォルトの名無しさん2015/03/01(日) 19:23:18.82ID:7Eh8uB9N
XAMLは地域特化みたいな感じだから…
HTML5のほうが間口が広い
いつかはほぼHTMLが主流になるのはわかってるけど
まだ移行したくない
つかjsの開発環境地獄すぎるからな
0823デフォルトの名無しさん2015/03/01(日) 20:51:56.65ID:Ll8mwVzp
>いつかはほぼHTMLが主流になる
そうなの?
俺はないと思うけどなあ。
0824デフォルトの名無しさん2015/03/01(日) 21:05:43.96ID:pZeLnU6y
市場全体で見ればもうとっくにそうなってるよ
今の業務アプリはほとんどWebなんだから
スマホなどのネイティブアプリだって今時バックエンドのAPIに繋がってないのなんて無いだろ?
クライアントのアプリ自体が単なるビューに過ぎないだよ
0825デフォルトの名無しさん2015/03/01(日) 21:26:46.36ID:Ll8mwVzp
>今の業務アプリはほとんどWebなんだから
いやいやVB6の時代からシェアほとんど変わってないでしょ。
できることも大して変わっちゃいないんだから
0826デフォルトの名無しさん2015/03/01(日) 21:28:06.03ID:pZeLnU6y
>>825
ASP.NET
0827デフォルトの名無しさん2015/03/01(日) 21:34:34.21ID:KW+So7wa
今は一周まわってWeb業務アプリに高望みしなくなってる時代
操作性の良いWebサイトなんてIT土方には荷が重すぎるからね
0828デフォルトの名無しさん2015/03/01(日) 21:54:47.16ID:ZPPZmGUp
ビューの話かそうじゃないのかはっきりして
0829デフォルトの名無しさん2015/03/01(日) 23:16:24.28ID:wyUXflXZ
ASP.NETみたいのでサーバーとくっついたページを作るでなく、APIとして呼ぶならフロントはHTMLである必要ないし、使い勝手最適化するならネイティブの方が楽そう。
逆に今スマホ案件でやってるような微妙な使い勝手を共通のHTMLアプリで作れてかつ各プラットフォームの動きにも沿ってくれると楽だけどそれも難しそうやね
0830デフォルトの名無しさん2015/03/02(月) 23:59:40.55ID:u52usFvA
VS2013CommunityにMvvmLight.Snnipet入れても補完が効かない……
0831デフォルトの名無しさん2015/03/03(火) 13:34:58.61ID:3DfJzsOM
Windows 8がターゲットの業務アプリを作っていてほぼ完成したんですが、やっぱWindows 7でも使うからとか言われて、
Windows 7で起動してみたら、見た目が全然違うし、コントロールが画面からはみ出したりして困ってます。

・Windows 7で起動したときの見た目を、Windows 8で起動したときのようにできますか?(これができるのがベスト)
・上記ができない場合、Windowsサイズをコントロールがちゃんと収まるように自動調整することはできますか?
0832デフォルトの名無しさん2015/03/03(火) 13:41:55.69ID:enI1zZfH
WPFならできるよ
0833デフォルトの名無しさん2015/03/03(火) 14:09:05.51ID:3DfJzsOM
>>832
> WPFならできるよ
WPFスレなので省略したのですが、もちろん、WPFあぷりです。

どうすればできますか?
何か検索できるキーワードがあれば教えてください。
wpf windows 8 windows 7で検索してみたんですが、めぼしいものが見つかりませんでした。
0834デフォルトの名無しさん2015/03/03(火) 14:19:56.20ID:pNXyLjS7
Gridきちんと使ってればんなことない
0835デフォルトの名無しさん2015/03/03(火) 14:49:15.02ID:3DfJzsOM
>>834
ひょっとすると、私のXAMLの書き方が根本的に間違ってる可能性があります。
以下の書き方であってますか?(属性は抜粋)
<Window Height="400">
 <Grid>
  <Grid.RowDefinitions>
   <RowDefinition Height="340*"/>
   <RowDefinition Height="60"/>
  </Grid.RowDefinitions>

  <StackPanel x:Name="panel1" Grid.Row="0">
   <!-- いくつかのコントロール -->
  </StackPanel>

  <StackPanel x:Name="panel2" Grid.Row="1">
   <!-- いくつかのコントロール -->
  </StackPanel>
 </Grid>
</Window>
画面をリサイズしたときに、panel1の部分だけが高くなるような設定です。

Windows 8でpanel1の内容がちょうど表示される高さが340で、Windows全体の高さを400にしています。
これをWindows 7で見ると、コントロールの種類が替わり(Aeroと言うんでしょうか)、コントロールの大きさが微妙に
大きくなり、panel1の下部が切れたりします。

また、Panel2にもいろいろ詰め込んでいる場合、panel2の下部も切れたりします。
0836デフォルトの名無しさん2015/03/03(火) 14:52:46.95ID:3DfJzsOM
ひょっとすると、Windowの属性がいけないのでしょうか。
デフォルトのまま使っています。
<Window x:Class="aaa"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation";
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml";
  Title="bbb" Height="400" Width="600">
0837デフォルトの名無しさん2015/03/03(火) 16:07:43.27ID:fJY9J990
せっかくWPF使ってるのにサイズきめうちとか・・・
0838デフォルトの名無しさん2015/03/03(火) 16:20:27.92ID:c94PfRJJ
>>836
とりあえず height="auto"を試してみるといいよ
0839デフォルトの名無しさん2015/03/03(火) 16:38:32.39ID:3DfJzsOM
>>837,838
autoはWPFを始めた頃にいろいろ試したのですが、うまく画面サイズを決められなくて、直値を使うようになりました・・・。

例えば、以下のようなコントロールがあるとき、Panel1はこのままでちょうどButtonが5個はいる高さに設定されます。
ところが、WindowのHeightは700px超、panel2もそれにあわせて高くなります。

・panel2の高さをButtonが1個入るだけの高さに
・Windowの高さも、panel1とpanel2が入るだけの高さに
するにはどうすれば良いでしょうか?

<Window Height="auto">
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="auto"/>
      <RowDefinition Height="auto"/>
    </Grid.RowDefinitions>
    <StackPanel x:Name="panel1" Grid.Row="0">
      <Button Height="32"></Button>
      <Button Height="32"></Button>
      <Button Height="32"></Button>
      <Button Height="32"></Button>
      <Button Height="32"></Button>
    </StackPanel>
    <StackPanel x:Name="panel2" Margin="0,10,0,0" Grid.Row="1">
      <Button Height="32"></Button>
    </StackPanel>
  </Grid>
</Window>

なお、2個目のRowDefinitionに「MinHeight="42" MaxHeight="42"」を加えたり、panel2にHeightを設定しても駄目でした。
0840デフォルトの名無しさん2015/03/03(火) 16:43:43.79ID:eHcPUX2E
Window.SizeToContent
0841デフォルトの名無しさん2015/03/03(火) 16:48:51.70ID:3DfJzsOM
>>840
!!!
<Window Height="auto" SizeToContent="Height">
で全て解決しました!!!

ありがとうございました。
0842デフォルトの名無しさん2015/03/03(火) 21:03:26.79ID:QckUZYNI
Column/RowDefinitionのスター * はちょっとコツいるよな
340*とか指定しても340/340スターだから*と変わらない
0843デフォルトの名無しさん2015/03/03(火) 22:35:04.20ID:/ywKJHzP
銀座アスター
0844デフォルトの名無しさん2015/03/04(水) 23:43:49.05ID:ZN/AF6av
WPFのウィンドウのClosingイベントで
×ボタンが押されたのか、タスクバーから閉じられたのかを判別する方法はありませんか?
0845デフォルトの名無しさん2015/03/05(木) 00:10:22.66ID:P+MhnSrP
君はいままでそのようなアプリに出会ったことはあるのかね?
0846デフォルトの名無しさん2015/03/05(木) 00:43:45.76ID:Ofw5zExQ
ウィンドウメッセージが両者で違うのならば‥
0847デフォルトの名無しさん2015/03/05(木) 01:00:19.10ID:Y3NrhZrt
ナビゲーション履歴の最大保持数って設定できますか?
0848デフォルトの名無しさん2015/03/05(木) 01:28:20.59ID:IEkTY5h9
>>844
判別して何したいのか気になる
0849デフォルトの名無しさん2015/03/05(木) 05:34:44.43ID:n3NecQLR
>>846
closeは一緒でも
その前に別のが来る
0850デフォルトの名無しさん2015/03/05(木) 08:27:51.81ID:4kvQPOFr
Windowがアクティブかどうかで判定するとか…
0851デフォルトの名無しさん2015/03/05(木) 09:39:24.40ID:IEkTY5h9
>>849
フラジャイルだなー(´・ω・`)
0852デフォルトの名無しさん2015/03/05(木) 15:24:30.45ID:n243tM8K
>>842
ちょっと意味がわからない
0853デフォルトの名無しさん2015/03/06(金) 02:46:38.06ID:KoKXQFWL
バインドとか一切使わず見た目がいじりやすいって理由だけで
WPFで作ってるんだけどムダかな?

MVVMが理解出来てない人がWPFを使うメリットって見た目以外に無いよね?
0854デフォルトの名無しさん2015/03/06(金) 03:13:49.73ID:H9DcjQPq
そもそもが UI フレームワークだからな…見た目、操作性だわな
0855デフォルトの名無しさん2015/03/06(金) 04:10:19.82ID:1hMlZT/C
>>853
別にメリットがあるならいーんじゃねの
0856デフォルトの名無しさん2015/03/06(金) 07:13:22.30ID:coWMRvsx
MVVMがメリットとかアホか
WPFは高機能すぎてクソ複雑だから、それを業務アプリのように
画面が沢山あるアプリで活用しようとすると煩雑になりすぎる
だからMVVMで少しでも楽しようってことだよ
WebのMVCを見てみろ、データ取ってきてスクリプトでテキスト吐くだけの最高に頭悪い仕組みだぞ
それでもほとんどのアプリにはあれで十分なんだよ
0857デフォルトの名無しさん2015/03/06(金) 09:03:35.24ID:eETCE8ft
MVVMを身につけないと宗教論争に参加できないから、
WPFの真の面白さは理解できないよ
0858デフォルトの名無しさん2015/03/06(金) 09:06:01.67ID:TaB/WAXS
>>857
これやね
https://www.youtube.com/watch?v=OVfH9-ZQLpo
0859デフォルトの名無しさん2015/03/06(金) 09:12:28.28ID:D8scrMxU
とりあえずListBoxやListViewのItemsSourceにコレクションにぶち込む所から始めたらMVVMなど難しい物じゃないよな
0860デフォルトの名無しさん2015/03/06(金) 12:35:32.27ID:coWMRvsx
WebのMVCはWebというプラットフォームの都合でああなってるだけだし
本来のMVCも元々はそうなんだが、それらと違ってMVVMはWPFの都合というよりほぼアプリの都合なんだよね
MVVMを使ってるugayaみたいな連中って基本的に業務系なので、実務の経験がないと
ああいう話はかなり分かりにくいんじゃないかな
0861デフォルトの名無しさん2015/03/06(金) 20:16:39.97ID:+V/z1/b/
サポートされていないから選択肢が無いのは「プラットフォームの都合」で
数ある選択肢の中から手軽なのを選ぶのは「アプリの都合」ってことですね

アホくさ
0862デフォルトの名無しさん2015/03/06(金) 20:42:33.48ID:btHjYdy9
ペダンチックな話だわ
それより僕はおいしい物を食べよう
0863デフォルトの名無しさん2015/03/06(金) 23:09:42.48ID:6l+E4Mxq
コントロールを継承する代わりにBehavior/Trigger Actionで
プラグインを増やすのは慣れると楽しい
0864デフォルトの名無しさん2015/03/07(土) 10:05:26.23ID:p/374YST
>>856
よくわからんが単純にかきたいならコントロール直接生成&設定とかもできるわけで、Webのソレとコード量、手間含めたいしたちがいないとおもうが。
MVVMは疎結合の仕組みであってそのメリットいらないからゴリッと簡単に書きたいならそうすれば。バリデーションいらないテキスト入力してエンターとかだったら自分もわざわざVMとかつくんねーよ
何で臨機応変にできないのかイミフ(´・_・`)
0865デフォルトの名無しさん2015/03/07(土) 10:50:22.59ID:MlGEwDRl
DRYじゃないっていうのはあるな
モデル弄るのが大変なドカタ開発にはいいかもしれないけど、
Web系みたいにモデルが単なるデータに近くてDB構造がしょっちゅう変わるような開発だと
ただ右から左へ受け渡すだけのプロパティをVMに並べるのはデメリットの方が大きいだろうね
0866デフォルトの名無しさん2015/03/07(土) 13:42:35.65ID:3HA4mQbj
DRYじゃない感は確かにあるが、実際の表示データと実データが一致してない事とかよくあることだろ
画面用クラスとして定義するのはそこまで嫌いじゃないなー
似たようなのを書く羽目にはなるけど、クラス結合はV-VMとMでぶった切れるので、
ビジネスロジックが重くてUIスレッドが固まる〜みたいなクソにならないし。
0867デフォルトの名無しさん2015/03/08(日) 01:30:22.70ID:ylREksfH
NavigatorService使うと↓みたいなエラートレースが出るのだけど回避方法ありますか?
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor,
AncestorType='System.Windows.Controls.Menu', AncestorLevel='1''. BindingExpression:Path=TemplatedParent;
DataItem=null; target element is 'MenuItem' (Name=''); target property is 'CommandTarget' (type 'IInputElement')

動的にコントロールが追加されると出るらしくComboBoxItemとかならStyle指定すればいいようですが
NavigationUIのMenuItemにはStyleが反映されないようです。
0868デフォルトの名無しさん2015/03/08(日) 02:05:08.02ID:k1c7apXc
コンボボックスを持つダイアログがあります。
(ItemsSourceには親のコレクション、SelectionChangedイベントを定義)

親からそのダイアログをShowDialog()で立ち上げた後だと、そのダイアログが閉じられた後(ダイアログ側でthis.Close()を実行)も
親のコレクションをクリアするとダイアログのSelectionChangedイベントが飛んで来るのは何を忘れているんでしょう…?
ダイアログを閉じた後はちゃんとnull突っ込んでガベコレも行っています。
ソースも用意してあるのですが、どっかいいup先ありますか?

Win7(64bit) + vs2010pro(.net4)
0869デフォルトの名無しさん2015/03/08(日) 02:10:29.40ID:f7k++9Sq
>>868
コレクションにnull突っ込んでんだったら、
ComboBoxのSelectedItemがnullに変わってSelectionChanged飛んでるんじゃないの
0870デフォルトの名無しさん2015/03/08(日) 03:10:47.38ID:k1c7apXc
>>869
ダイアログが開いている間だったらそれでいいんですけど、
ダイアログを破棄した後も(ダイアログの)イベントがやって来るので何か忘れてるのかなと思いまして。
0871デフォルトの名無しさん2015/03/08(日) 04:29:21.49ID:f7k++9Sq
>>870
というか、ダイアログのSelectionChangedが飛んでくるってどういう状況よ
明示的にイベント登録した後に明示的にイベント登録解除してないだけじゃない?
08728682015/03/08(日) 20:38:29.06ID:k1c7apXc
SelectionChangedはxaml上で登録。登録解除はしてないです。

d = new ダイアログ(); d.Owner = this; d.ShowDialog();
d = null; GC.Collect(); GC.WaitForPendingFinalizers();

ってやってるんですが、この後コレクション.Clear()を実行するとダイアログのSelectionChangedが飛んで来ます。
登録したイベントはダイアログ側でthis.Close()の前にきっちりと登録解除してやらないと、
d = nullってやってもダイアログの実体は消されないということでしょうか

…というかソースupしたい
0873デフォルトの名無しさん2015/03/08(日) 20:44:08.61ID:f7k++9Sq
ideoneでもwandboxでも使えばいい
あとFullGCしたいならGC.WaitForPendingFinalizers(); の後にもう一回GC.Collect必要だし、
そもそもGC.Collectをそんな用途で使うべきではない
08748682015/03/08(日) 21:00:25.81ID:k1c7apXc
ここでいいのかわかんないけどソースupしました。

http://nullpoarchives.orz.hm/uploader/upload/File14843.zip
解凍pass : 1410523389

Owner設定とShowDialog()は(>>872とは違い)ダイアログ側でやってましたが関係ないよね?
0875デフォルトの名無しさん2015/03/08(日) 21:01:57.59ID:k1c7apXc
>>873
ごめん書き込みに気付かなかった。
GCについての指摘、ありがとうございます。
苦し紛れで入れたものですが、消しておきます。
0876デフォルトの名無しさん2015/03/08(日) 21:25:19.70ID:f7k++9Sq
>>875
Form臭が凄い
このSelectionChanged、何の為に存在してるんだ? 完全に不要だろコレ
MainWindowにList型dp定義してBindingすれば何の問題もない

イベントが飛んでくる事自体の理由は単純にSelectionChangedをXAML上に書いてるから
イベントが解除されるルートが存在しないため、上記どういう経路でもDataContextやら
ItemsSourceの値が変わるのでSelectionChangedが発生するってだけ。
0877デフォルトの名無しさん2015/03/08(日) 21:27:17.40ID:f7k++9Sq
あとShowDialogをWindow側でやる意味が皆無だし、
ItemsSourceにコンストラクタで値突っ込むなBindingしろって感じだし、
WPFの作法覚えたほうが絶対早い
0878デフォルトの名無しさん2015/03/08(日) 21:41:34.55ID:k1c7apXc
>>876-877
余計なものを全部削ぎ落として現象を再現させるためだけのソースなので
SelectionChangedがこのソースではただあるだけになっています。
また、本来のソースでは参照先の切り替えもあるのでItemsSourceはコード側の定義になっています。

指摘いただいた部分、修正してみます
0879デフォルトの名無しさん2015/03/08(日) 21:43:04.20ID:C+qqM5pQ
>>877
>ItemsSourceにコンストラクタで値突っ込むなBindingしろって感じだし
ItemsSourceにコンストラクタでList突っ込んでBindingしたらダメなの?
0880デフォルトの名無しさん2015/03/08(日) 21:50:39.16ID:f7k++9Sq
>>879
挙動は変わらないけどダメだろ
for文じゃなくて同じコード100個コピペすればよくない? というのと同じレイヤでダメだろ
XAMLに書けるんだから変に情報を分散させるべきではない
0881デフォルトの名無しさん2015/03/08(日) 23:50:42.29ID:LRWwztfS
>>878
ReactiveProperty使ってIObservable<IObservable<Hoge>>にしろよ
0882デフォルトの名無しさん2015/03/09(月) 10:54:57.37ID:32eRtFGl
>>880
> XAMLに書けるんだから変に情報を分散させるべきではない
これ、別の見方をすると、「特別な情報」をその他雑多な設定の中に紛れ込ませているとも言える。
何もかもが全部XAMLに入ってるとして、ざっとみて必要な情報を抜き出しづらい。
それよりも「特別な情報」は、コンストラクタで一括管理すれば、何がその「特別な情報」かがすぐわかる。
0883デフォルトの名無しさん2015/03/09(月) 23:48:29.65ID:7OOxTo2y
>>882
特別な情報をV/VM層が持ってるのおかしいんだけどな
0884デフォルトの名無しさん2015/03/10(火) 00:11:03.96ID:fUgCi1F7
Webじゃないから気軽にステートフルシングルトンサービス作っちゃう
MVVMLight最高。ほかを知らんだけだが
0885デフォルトの名無しさん2015/03/10(火) 00:30:59.05ID:OkPaKt4+
MVVMやるためにWPFやってるんじゃなく、アプリ作るためにやってるのに。
どこに何を入れるかはその時々だよ。
0886デフォルトの名無しさん2015/03/10(火) 00:34:51.85ID:8kdI7WoL
>>885
そらそーだけど、アプリ作れれば良いっていう作り方でアプリちゃんと作れるかというと…

>>884
やっぱ脳停止シングルトンにした方が楽なんだろうか…
0887デフォルトの名無しさん2015/03/10(火) 01:18:31.56ID:NK8SFleH
こんな素晴らしい情報を持っているV/VM層は
きっと特別な存在なのだと感じました
0888デフォルトの名無しさん2015/03/10(火) 07:40:05.53ID:OpBf48bx
アプリなんか作ってねぇーだろ
アーキテクチャを理由にサボってるくせに
0889デフォルトの名無しさん2015/03/10(火) 11:23:41.17ID:84lJtiyH
>>883
> 特別な情報をV/VM層が持ってるのおかしいんだけどな
「特別な情報」というのは、「その他雑多な設定」以外の情報という意味で、その他雑多な設定というのは、
Viewそのものを構築するコードや見た目を定義するコードなどです。

ComboBoxが5つある画面があったとして、それぞれ何がデータバインドされてるかをXAMLから探し出すより、
コンストラクタに5行並んでた方がわかりやすいと、個人的には思います。
0890デフォルトの名無しさん2015/03/10(火) 20:29:28.08ID:dyIR0Ys3
>>889
そのやり方だと、コンボボックスの名前をXAMLから探し出すことになりそうだけど。
0891デフォルトの名無しさん2015/03/10(火) 21:49:05.70ID:OkPaKt4+
マジックワードを埋めこむのが気に入らない < XAML
変数の名前が変わってもコンパイルがそのまま通ってしまうし
0892デフォルトの名無しさん2015/03/10(火) 21:54:32.03ID:LTgXErzv
俺なんかWPFのすべてが気に入らないw
0893デフォルトの名無しさん2015/03/10(火) 21:58:36.82ID:fUgCi1F7
>>891
INotifyPropertyChangedで()=>PropertyNameみたいにできればプロパティ名変更しても
追従してくれるぜ!どやどや!ってのが馬鹿らしくなるよなXAMLのせいで
0894デフォルトの名無しさん2015/03/10(火) 22:41:55.85ID:seaEPtVF
xmlの仕様とはいえ、xamlのコメント何とかならんものなのかな
0895デフォルトの名無しさん2015/03/11(水) 10:12:03.96ID:cBNF0VnC
>>890
> そのやり方だと、コンボボックスの名前をXAMLから探し出すことになりそうだけど。
どういうことでしょうか?
コードを書くときに、XAMLから探す必要があるということですか?
だとすると、私の場合はたとえばComboBoxならcboHogeという命名規約にしています。そうすれば、cboとタイプすれば、インテリセンスで選択が容易です。

私が言いたいのは(もちろん個人的感想なんですが)、
・Viewの構造定義
・見た目定義
・VMとの関連あるいは、その他データソースとの関連
・Commandとの関連、あるいはイベントハンドリング
が全てXAMLにごっちゃになってるのが見通しが悪いのではということです。
0896デフォルトの名無しさん2015/03/11(水) 13:12:55.45ID:wsBosi6x
>>895
コメントかきゃいいだけじゃね?
0897デフォルトの名無しさん2015/03/11(水) 15:55:26.75ID:cBNF0VnC
>>896
> コメントかきゃいいだけじゃね?
異なる関心事がごっちゃになってても平気ならば、それでいいと思う。

この辺の感覚は、作るアプリの種類によっても全然違ってくると思う。
私の場合は、糞業務アプリしか作らず、画面にComboBoxが数十とかTextBox系が数十とかあったりすると、
全てをXAMLで書くと長大になってしまいがちだから。
0898デフォルトの名無しさん2015/03/11(水) 16:42:24.20ID:X6PxjBu4
一つの画面にコンボボックスやテキストボックスが数十とか、設計間違っているとしか思えん
0899デフォルトの名無しさん2015/03/11(水) 17:29:14.92ID:cBNF0VnC
>>898
分野によるんじゃないでしょうか。
マスターだと項目が数十あったり、何かの測定結果を入力する画面だとControlが数十あったりがざらです。
0900デフォルトの名無しさん2015/03/11(水) 17:33:48.97ID:cBNF0VnC
イメージはこんな感じですね。
http://officeholmes.jp/work01.html

こんなのばっか作ってると嫌になります。
0901デフォルトの名無しさん2015/03/11(水) 19:04:16.29ID:X6PxjBu4
>>900
いろいろな宗教が有るだろうから人それぞれだが、俺はマスターには必要最低限の情報を厳選して
サブのテーブルに機能毎に項目割り振るから、マスターメンテでコンボボックスやテキストボックスだらけって状況避けるけどな
0902デフォルトの名無しさん2015/03/11(水) 20:32:42.73ID:W6PmAFrU
宗教論議はMVVMだけでもお腹いっぱいなんだが
0903デフォルトの名無しさん2015/03/11(水) 23:39:34.44ID:5EkQ77dJ
じゃあ二杯目でもどうぞ
09048902015/03/12(木) 00:50:00.45ID:pW4YjKPd
>>895
特に深い意味はないよ。

XAML側でバインドすれば >>889 の言う通り、それぞれ何がデータバインドされてるかをXAMLから探し出すことになるけど、
コードビハインドに
cboHoge.ItemsSource = source1;
cboPiyo.ItemsSource = source2;
cboFuga.ItemsSource = source3;
って書いたら、cboHogeが画面上のどのコントロールなのかをXAMLから探すことになり、
つまりどっちみちXAMLから探すことになるんじゃないのかなって言いたかった。
0905デフォルトの名無しさん2015/03/12(木) 11:56:40.83ID:FCsQ0GgG
>>901
やはり分野によるんでしょうね。
主キーから一意に決定される属性が数十個あるなら、必要最低限の個数ががそれなんです。
(スレ違いですが、例えデータベース物理設計として複数テーブルに分割したとしても、ある一つの事柄のマスター登録は、大抵1画面にします。Control数的に収まるならですが。)

>>904
なるほど、そういう意味でしたか。理解しました。
0906デフォルトの名無しさん2015/03/13(金) 17:27:59.32ID:lgYh4JEH
googleの天気予報に時刻ごとの降水予測と温度予測が出なくなった
0907デフォルトの名無しさん2015/03/18(水) 11:55:14.82ID:g+8cwI7g
最近WPF + MVVMを始めました。
ListViewにアイテムを追加することは出来たのですが、追加した後に一番下にスクロールする方法がよく分かりません。

こういった場合どうすれば良いのでしょうか
0908デフォルトの名無しさん2015/03/18(水) 13:26:09.57ID:ZVd9EoeU
>>907
追加されたアイテムを画面内に表示させたいってことなら、BringIntoViewを呼び出すBehaviorでも書けば?
0909デフォルトの名無しさん2015/03/18(水) 14:35:31.56ID:g+8cwI7g
>>908
ありがとうございます。
調べてかいてみます。
0910デフォルトの名無しさん2015/03/20(金) 02:20:51.45ID:xCesDmzF
reactivepropertyとreactiveuiってどっちがいいの?
0911デフォルトの名無しさん2015/03/20(金) 22:44:35.33ID:fk8riHtE
WPF アプリケーションの起動時に System.Windows.Automation.Peers.AutomationPeer.Initialize() で System.NullReferenceException が発生する場合がある。
http://blogs.msdn.com/b/jpvsblog/archive/2015/03/19/automationpeer-initialize-nre.aspx
0912デフォルトの名無しさん2015/03/21(土) 00:29:47.99ID:wTPdkcAS
MSは何故VisualStudioで使っているであろうUIパーツを公開してくれないんだろうね。
それはそうと、最近のMSOfficeってWPFに移行してるの?
LiberOfficeばかり触ってるから知らないんだが。
0913デフォルトの名無しさん2015/03/21(土) 00:34:33.92ID:SYey43kM
VS Shellがあるでしょ
VSのシェルは非常に高度な一つのフレームワークであり、WPFはその低層に隠れている
単体でアプリに組み込めるようなもんじゃなくて、使うなら逆にVSの中にアプリを組み込む形になるんだよ
0914デフォルトの名無しさん2015/03/21(土) 00:34:49.77ID:QY+/N3Tm
そのドッグフードは5年前に賞味期限が切れたのでもう食べられませんw
0915デフォルトの名無しさん2015/03/21(土) 10:35:27.98ID:BGjh54o4
>>912
前に誰かが書いてたけどサードパーティーの有料UIパーツ使ってるってさ
0916デフォルトの名無しさん2015/03/21(土) 15:25:42.56ID:7hK81Pmf
依存関係プロバティーを定義するときにOneWayToSource限定にする方法ありますか?
0917デフォルトの名無しさん2015/03/22(日) 21:53:12.90ID:Q3zPWfOo
WPF、ぜーんぜん流行る気配がないねえ。

このままいくと業務アプリは、あと30年ぐらいWindowsフォームで開発することになりそう。

つまりWindowsフォーム + データセットが、今のCOBOL的な位置づけになる。
0918デフォルトの名無しさん2015/03/22(日) 21:58:51.70ID:3civYS9u
もうWPFも時代遅れだからな
意識高い系はWebに行っちゃったし、土方は当然WinFormsかWebForms
0919デフォルトの名無しさん2015/03/22(日) 22:10:14.26ID:HL22uXML
前にも同じこと書いてる人がいたけど、個人的にはWebのどこが意識高いのかさっぱり分からん。
0920デフォルトの名無しさん2015/03/22(日) 22:13:27.53ID:wM87Ote3
声がでかいのと浮ついてるのを意識高いと呼んでるだけだよ
0921デフォルトの名無しさん2015/03/22(日) 22:23:11.65ID:3civYS9u
>>920
全くもってその通りだけど、WPFの話題だってほとんどはそういう連中が中心だったでしょ
土方には見向きもされてない
0922デフォルトの名無しさん2015/03/22(日) 22:50:00.54ID:2ymaPzec
土方向けにはXamarin.formsでの開発が多くなりそうな予感
0923デフォルトの名無しさん2015/03/23(月) 01:09:45.43ID:pSjqqcPy
WPFが時代遅れだとして、次があるとは思えんし、
Webが時代遅れ?になるころにはいよいよプログラマが時代遅れになるのか?
0924デフォルトの名無しさん2015/03/23(月) 07:25:48.73ID:VVJhDQ34
webみたいな綺麗な画面は作りやすいけどなぁ
イベント関係が気に入らないが
0925デフォルトの名無しさん2015/03/23(月) 07:31:33.34ID:39b0MZjd
ネイティブクライアントは衰退する一方だから、もう次はないだろうな
スマホやタブレットのアプリで盛り返してると言う奴がいるけど、
残念ながら業務システムでそれらを使う場合って実際ほとんどWebベースなんだよね
0926デフォルトの名無しさん2015/03/23(月) 09:12:56.93ID:lLvMVgy/
Webアプリで使いかってよくするよりもネイティヴで作ったほうがはるかに生産性高いんだけど。
XamRin使ったらなおさら
0927デフォルトの名無しさん2015/03/23(月) 12:17:23.51ID:39b0MZjd
WPF経験のあるドカタを集めるのなんてほぼ不可能だし、
ドカタにXAMLの教育からやるくらいならWeb系のフロントエンドやってる連中に投げたほうが
よほど安上がりだしまともなものができるだろ
ゴミみたいな単価に蟻のように群がってくるわ
0928デフォルトの名無しさん2015/03/23(月) 12:24:53.33ID:Fed4+lLz
絵に描いた餅は美味しいかどうか
0929デフォルトの名無しさん2015/03/24(火) 10:21:48.79ID:SzAR1G+L
意識が高いとか低いじゃなくて、XamlでUI書くのはWinFormsのポトペタより遥かに楽なんだけどな
処理はイベントドリブン型でもいいからUIを一度書いてみてほしいものだ
0930デフォルトの名無しさん2015/03/24(火) 10:26:34.45ID:3MgVh7kB
どっちも可能だからこそ良いんじゃね。どっちもやるぜ
ただGUIビルダで大きく弄るとXAML崩れるのが気に入らねぇが
0931デフォルトの名無しさん2015/03/24(火) 12:42:45.34ID:eGio9u9Q
参照エラー表示がウザいからデザイナー切ってるわ
インテリセンスの候補に出せてるくせに参照が見つからないって頭おかしいの?
0932デフォルトの名無しさん2015/03/24(火) 17:58:33.12ID:I9d+0tlB
ネイティブがどうこう言ってもプラットフォームが限られてたら終わり
ここでもそのことが理解できてないやつが多い

次のVSはマルチデバイスの開発環境充実の方向に向かってる
頑張ってandroidもiOSもwindowsも全部開発できるようにするよ!ってこと
でもhtmlだったらそんなことをあまり意識しなくてもいい
特殊な場合を除いて大部分のアプリはwebアプリに移行すると思う
0933デフォルトの名無しさん2015/03/24(火) 18:48:41.41ID:y5kkQVD8
>>932
> 特殊な場合を除いて大部分のアプリはwebアプリに移行すると思う
パフォーマンスの問題が解決すれば、その勢いは加速すると思う。

『「ネイティブアプリかWebアプリか」の争いはいい加減やめにしよう』
http://readwrite.jp/archives/21539
0934デフォルトの名無しさん2015/03/24(火) 20:07:45.01ID:LohqoBDV
>>932-933
そんなの前世紀からあるホラ話。
まだ間に受けてるお人よしいるんだね。
0935デフォルトの名無しさん2015/03/24(火) 21:24:27.31ID:I9d+0tlB
だったらハイブリッド展開してるネイティブアプリの開発工数減らしてみろよ
0936デフォルトの名無しさん2015/03/24(火) 21:56:59.07ID:KtD2xxv9
>>935
え゛、Webアプリのほうが簡単なの?
0937デフォルトの名無しさん2015/03/25(水) 00:52:29.02ID:rOLywoKB
>>932
そのWebでどこでも動きますよってレベルはもうXamarinで可能。それで速い。作りやすい。
0938デフォルトの名無しさん2015/03/25(水) 00:57:08.14ID:w567qPLi
Xamarinはプラットフォーム別にGUI作り込まなきゃいけないだろ
端末へのデプロイ不要でGUIも共通化できるWebと比べるのは筋違い
0939デフォルトの名無しさん2015/03/25(水) 01:20:04.86ID:rOLywoKB
>>938
Formsも知らないバカは10年ROMってろよ
0940デフォルトの名無しさん2015/03/25(水) 07:21:03.48ID:bi42DHFl
WPFスレでForms推しされるとは思わなんだ
上等なギャグだね
0941デフォルトの名無しさん2015/03/25(水) 07:25:12.72ID:w567qPLi
Monoの中途半端なWinFormsモドキ使うくらいならJavaのほうがまだマシ
0942デフォルトの名無しさん2015/03/25(水) 10:24:08.71ID:DFQK2JiJ
>>934
> そんなの前世紀からあるホラ話。
ということを真に受けて、時代から取り残されていけばいいよ。
0943デフォルトの名無しさん2015/03/25(水) 19:19:05.20ID:UQSzKjlW
ビジネスロジックは web がいいね
実際、ネイティブアプリである必要性が急速に失われつつある

ただしネット接続環境が良好であればの話だが
0944デフォルトの名無しさん2015/03/26(木) 07:39:42.04ID:vGJK9a/j
ネット接続環境ってw
企業だとLAN内で業務Webアプリを動かす場合が多いんだよ
0945デフォルトの名無しさん2015/03/26(木) 08:13:56.87ID:FQTVCqe4
ノマドでスタバマックな俺ぐうかっこE〜
って感じなんじゃねーの
ブッ
0946デフォルトの名無しさん2015/03/26(木) 12:27:41.49ID:uV7qaf9u
実務経験がないと、世の中にインターネットでアクセスできないWebアプリが
どれだけあるかなんて想像もつかないだろうな
0947デフォルトの名無しさん2015/03/26(木) 13:37:33.16ID:JLW4ZZJf
自分の言ってることに含まれる語義矛盾に気づかないのもどうかと思うんだけどね。
「インターネットでアクセスできないWebアプリ」てw
0948デフォルトの名無しさん2015/03/26(木) 14:19:13.65ID:MHOnH925
>>947
Wikipediaより:
> ウェブアプリケーション(Web application)は、インターネット(もしくはイントラネット)などのネットワークを
> 介して使用するアプリケーションソフトウェアである。
0949デフォルトの名無しさん2015/03/26(木) 15:13:55.27ID:BEpOdcV+
通称ね。
実務経験云々言ってる人がそれに違和感を感じないのってどうなのかなと。
0950デフォルトの名無しさん2015/03/26(木) 15:37:31.85ID:MHOnH925
違和感って何の違和感?
「イントラネット内のWebアプリ」に違和感があるってことか?
俺は何の違和感もないが。
0951デフォルトの名無しさん2015/03/26(木) 15:39:07.33ID:SuVdMCRs
インターネットとザインターネットの区別がつかないひとって結構いるよね
0952デフォルトの名無しさん2015/03/26(木) 15:40:19.26ID:ZAP9cAHT
ジ・インターネットって言う人も少ない
0953デフォルトの名無しさん2015/03/26(木) 16:20:25.92ID:hd1hb778
インターネッツとかインターネッティングとかあったなあ
0954デフォルトの名無しさん2015/03/26(木) 18:36:18.00ID:vGJK9a/j
公開範囲に関わらず、単にWebの手法で作られたアプリをWebアプリと呼ぶのは
そう珍しいことではないと思うけどな
インターネット限定ならWeb屋とは呼べなくなる自称Web屋もいるだろう
0955デフォルトの名無しさん2015/03/26(木) 18:40:49.07ID:hd1hb778
分かってるからコマケーコト気にすんなよ。
多い日か?
0956デフォルトの名無しさん2015/03/26(木) 22:56:25.89ID:H/S36mmF
>>940
えーと、Xamarin.Formsの話だぞ?
0957デフォルトの名無しさん2015/03/27(金) 15:10:08.52ID:QKVU8tuY
VB2013でWPFを試しに触っているんですが、
Application.UserAppDataPath ってどうやって参照するんですか?

Applicationのメンバに出てこないのでビルド通りません、、、
0958デフォルトの名無しさん2015/03/27(金) 15:15:15.06ID:vGw/d/yj
System.Windows.Forms だから、この参照追加しないとダメじゃね?
0959デフォルトの名無しさん2015/03/27(金) 15:44:06.09ID:QKVU8tuY
>>958
System.Windows までは出てくるんですが、Formsがメンバにいないんですよ

要は設定ファイルの格納先が分かればUserAppDataPathじゃ無くてもいいんですが、
ベタで書くのも芸が無いなあと思って試してます
0960デフォルトの名無しさん2015/03/27(金) 15:53:23.49ID:vGw/d/yj
だから、Forms じゃねーからデフォ参照されてないんだって
プロジェクトのプロパティの参照な
0961デフォルトの名無しさん2015/03/27(金) 15:57:14.84ID:JgPCIX8R
System.Windows.Forms.dllをアセンブリ参照に追加しろ
あと紐なしバンジーして死ね
0962デフォルトの名無しさん2015/03/27(金) 16:03:42.00ID:QKVU8tuY
>>960-961
申し訳ありません、ありがとうございました
バンジーしてきますのでご勘弁
0963デフォルトの名無しさん2015/03/27(金) 16:39:08.77ID:qP3LeJZ7
棒棒鶏でも可
0964デフォルトの名無しさん2015/03/27(金) 17:06:47.22ID:FbXdxQFA
俺がやさしく受け止めてやるから安心汁
0965デフォルトの名無しさん2015/03/27(金) 22:40:59.49ID:gqYd1rwI
>>962
System.Environment.SpecialFolder.ApplicationDataで
0966デフォルトの名無しさん2015/03/28(土) 09:10:05.82ID:cgKmHSA6
FromのApplication.UserAppDataPathだとバージョン番号とかうざくない?

普通に
GetFileSystemPath(Environment.SpecialFolder.ApplicationData);
の方がいいと思うけどな。
0967デフォルトの名無しさん2015/03/28(土) 13:21:58.21ID:SSdad0di
複数種類のウィンドウで、一部だけが違う場合の効率的なXAMLの書き方について教えてください。

たとえば、以下のような2種類のウィンドウがあったとして、TextBlockとListBoxしか違わないとします。
共通している部分はなるべく一回で済むようにしたいです。どうしたらいいでしょうか?

<Window>
 <Grid>
  <TextBox/>
  <TextBlock/> ここが違う
 </Grid>
</Window>

<Window>
 <Grid>
  <TextBox/>
  <ListBox/> ここが違う
 </Grid>
</Window>
0968デフォルトの名無しさん2015/03/28(土) 15:30:51.05ID:gB4Elb0A
view1つにして、ContentControl 使えばいんじゃね。差し替えるとこに置いといて、
コレのContent に動的にバインド。ある程度グループがあるならUserControl をバインド
それかDataTemplate で差し替えやる手もあるか

使ったことないけど。こんなのあったなぁ…と
0969デフォルトの名無しさん2015/03/30(月) 14:24:54.57ID:gCTS3FIY
データトリガーで要素入れ替えるというのなら見たことあるが
0970デフォルトの名無しさん2015/03/30(月) 21:49:58.49ID:KMIfYLWY
>>967
ButtonのContentには、例えばListBoxでもなんでも書ける
ボタンと同じようにユーザーコントロールを書いてContentにあたるところになにか書けばいいわけだから

<local:mycontrol>
<ListBox/>
</local:mycontrol>
て具合で書くことが出来る。コレを実現するにはContentPresenterてやつを使うんだが
http://www.atmarkit.co.jp/ait/articles/0907/13/news093_2.html
でも見て勉強してくれ
依存関係プロバティーとかも必須だから初心者だと厳しいかもしれんが
0971デフォルトの名無しさん2015/03/30(月) 21:54:09.96ID:KMIfYLWY
×
<local:mycontrol>
<ListBox/>
</local:mycontrol>


<local:mycontrol>
  <local:mycontrol..Content>
    <ListBox/>
  </local:mycontrol..Content>
</local:mycontrol>

こうだったな
0972デフォルトの名無しさん2015/03/31(火) 02:03:52.32ID:Wei1pJtt
結局、上と同じこと書いてね
0973デフォルトの名無しさん2015/03/31(火) 23:19:05.59ID:b0cwTXAo
WPF初心者です
Listboxにファイルパスなどの情報を保持するクラスXのリスト=ObservableCollection<X>を登録して
リストの選択項目が一つのとき,そのXに含まれる情報を元に画像をロードして,別の箇所にあるImageに表示させたいです。

そこでXにIsSelectedプロパティを用意して,SelectionChangedイベント内で変化を追従し,
イベント処理の最後にリストを調べてIsSelected==true の要素数が1つのとき,
そのXを別途用意したUniqueSelectedXのプロパティにセット,1でないときはnullをセットしました

ImageのソースをUniqueSelectedXのパスにバインドしているのですが,どうも泥臭く感じます。
できればリストの選択項目(選択された一つのみ)にバインドを直接みたいのですが可能でしょうか?
0974デフォルトの名無しさん2015/03/31(火) 23:28:47.08ID:yvrxgcRM
WPFではコントロールをなるべく直接触らないのが基本
ListBoxのItemsSourceにXのリストをそのままバインドして、
表示の仕方はItemTemplateを使って定義する
そうするとListBox.SelectedItemが現在選択されてるXを返すようになるので、
別の箇所にあるImageにそのSelectedItemをバインド
0975デフォルトの名無しさん2015/03/31(火) 23:51:42.70ID:b0cwTXAo
ありがとうございます
バインディングまだ慣れていないので試してみます
0976デフォルトの名無しさん2015/04/01(水) 15:13:00.00ID:L2cXUhXg
VB2013でWPFに初チャレンジ中です。

Class Application
 Public appsettings As New Settings
 〜〜中略〜〜
End Class

※SettingsはPublic Classとして宣言

このプロジェクト内のフォームでappsettingsを参照しようとすると、
「'appsettings'は宣言されていません。 アクセス出来ない保護レベルになっています。」
というエラーが出ます。

以前のVBならPublic宣言しとけばどこからでも見られたと思うんですが、
WPFではどこでPublic宣言すればグローバル変数として扱えるのでしょうか?
0977デフォルトの名無しさん2015/04/01(水) 15:29:51.97ID:GSlkCZzi
usingが足らないか、publicにしたつもりでもpublicになってないか
「プロジェクト名.Properties」はusingされてるか?
プロジェクトプロパティ→設定でアクセス範囲が本当にpublicになっているか?
0978デフォルトの名無しさん2015/04/01(水) 17:26:16.04ID:L2cXUhXg
>>977
ありがとうございます
ヒントを頼りに色々試した結果、

Public Shared appsettings As New Settings
     ~~~~~~~~
と宣言したら参照できました
0979デフォルトの名無しさん2015/04/02(木) 13:22:10.42ID:OmvXhw4L
ちゃんと .NET と OOP の勉強しないといつか酷い目に会うぞ
ソレが何なのか、ちゃんと理解しろよ。webとかでやらかすぞ
0980デフォルトの名無しさん2015/04/02(木) 20:35:43.06ID:FVK2pQy4
.net 1.1の現場に入ることになった…
今までありがとう
0981デフォルトの名無しさん2015/04/03(金) 11:41:49.41ID:TMrMNhLU
データ検証にValidationAttributeを使おうと思っているのですが
System.ComponentModel.DataAnnotationsの説明を見ると
この名前空間はASP用っぽい説明文になっています。
ValidationAttributeはWPFでは使わないほうがいいのでしょうか?
使用する場合、System.ComponentModel.DataAnnotationsはMVVMの
Mで参照してもよいものなのでしょうか?
0982デフォルトの名無しさん2015/04/03(金) 18:52:10.18ID:YM898wsK
Prismを使う利点ってなんなんでしょうか?
0983デフォルトの名無しさん2015/04/03(金) 19:50:46.67ID:JflSpfIv
なんでこんなどうでもいいコード書かなけりゃいけないんだ!?
WPFとMVVMってほんとゴミだな!!!

って思う頻度を多少減らしてくれる
0984デフォルトの名無しさん2015/04/03(金) 21:47:00.55ID:FAm5ZfNK
>>981
IDataErrorInfoとValidationで検証を実装する系のヤツは普通に使われてる気がする
というか、Model層の話だったらWPF関係ないだろ
レス数が950を超えています。1000を超えると書き込みができなくなります。