WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part18
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2014/09/12(金) 21:03:09.48ID:IBfP15RfVisual 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&displaylang=ja
Microsoft .NET Framework 4 (スタンドアロンインストーラー)
http://www.microsoft.com/downloads/details.aspx?familyid=0A391ABD-25C1-4FC0-919F-B21F31AB88B7&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:YhLm7TN30004デフォルトの名無しさん
2014/09/13(土) 13:27:54.65ID:YhLm7TN30005デフォルトの名無しさん
2014/09/13(土) 13:48:01.59ID:G+jDHYHb0006デフォルトの名無しさん
2014/09/13(土) 14:08:13.21ID:xYJZLHHeプレゼンテーションなんてPowerPointで十分だ
0007デフォルトの名無しさん
2014/09/13(土) 14:16:09.43ID:G+jDHYHb0008デフォルトの名無しさん
2014/09/13(土) 15:54:55.34ID:UTK/dH9B今の職場でプログラムは出来ないけど
めっちゃ奇麗なパワポの資料作る人がいるんだよね
UIはパワポに任せるとか
0009デフォルトの名無しさん
2014/09/13(土) 16:14:45.72ID:T4wMMDpo正気かw
0010デフォルトの名無しさん
2014/09/13(土) 16:45:30.29ID:CEzP+lKU誰も使ってるの見たことないが
0011デフォルトの名無しさん
2014/09/13(土) 19:55:38.26ID:35FIv3An0012デフォルトの名無しさん
2014/09/13(土) 20:02:09.32ID:LzYQM/9g0013デフォルトの名無しさん
2014/09/13(土) 20:06:52.43ID:zrSUNLzxWebPagesをXAMLで記述できたなら絶対的な地位を確立できはずなのに
トレンドがすでにWebになっていてそれは止まらないからASP.NETはvNextというように常に進化してるわけだけどWPFの進化ってずっと止まってるよね
逆転の発想でRazorでデスクトップアプリのVを記述できるようにすればいいのに
0014デフォルトの名無しさん
2014/09/13(土) 20:12:14.84ID:Mqgtp+Th0015デフォルトの名無しさん
2014/09/13(土) 20:20:38.96ID:LzYQM/9g0016デフォルトの名無しさん
2014/09/14(日) 04:34:35.90ID:Vfg3hNMCPrismはどうにも弱いんだよね…
0017デフォルトの名無しさん
2014/09/14(日) 10:47:32.55ID:vfB/0ChX同意
0018デフォルトの名無しさん
2014/09/14(日) 13:23:50.14ID:Q/YD9gHS0019デフォルトの名無しさん
2014/09/14(日) 15:44:38.47ID:Vfg3hNMCMVVM Light
Livet
とかいくつかあるが、どれ使ってる?
PrismはMVVM系機能が弱い
MVVMLightはバランスとれてるけど日本だとユーザー層が薄い
Livetはかなり楽できるけど痒い所に手が届かない
という印象
0020デフォルトの名無しさん
2014/09/14(日) 16:01:39.04ID:r/q+w3eb0021デフォルトの名無しさん
2014/09/14(日) 16:06:53.82ID:Vfg3hNMCXamarinの事例、NHK紅白歌合戦アプリくらいしか聞かないけどアレどうなんです…?
0022デフォルトの名無しさん
2014/09/14(日) 16:25:03.53ID:r/q+w3eb今実案件で使ってるよ。
十分以上に実用的。
0023デフォルトの名無しさん
2014/09/14(日) 17:37:51.99ID:vdvszDXwDIとVMのスニペットだけでええねん
0024デフォルトの名無しさん
2014/09/14(日) 17:54:45.61ID:vfB/0ChXLivetの代わりにMVVMCross入れるべきだろ
0025デフォルトの名無しさん
2014/09/14(日) 18:30:09.08ID:Vfg3hNMCデスクトップアプリ畑の人間なのでCrossは使った事がないんだよね…
>>23
中途半端なイメージあって触ってないけど、正直足りなくならない?
0026デフォルトの名無しさん
2014/09/14(日) 18:50:28.76ID:r/q+w3eb後どんな機能が他のやつだとあるのん?
0027デフォルトの名無しさん
2014/09/14(日) 18:51:09.81ID:vdvszDXw.net3.5の指定が来ても使えるしトレードオフかな
0028デフォルトの名無しさん
2014/09/14(日) 20:01:56.28ID:6r0yaFbD自分は、FWの基本的な機能と、自前のBehaviorやTrigerActionなんかで事足りちゃってるタイプなので。
0029デフォルトの名無しさん
2014/09/14(日) 20:11:11.93ID:Vfg3hNMCFWレベルというか、ライブラリレベルの話だと、Model層で管理してるアイテムのリストをViewModelを介してViewに反映させたい時に便利なクラスがあるもののModel側のAdd/Delete/Insert/Mergeを素直に反映しすぎてパフォーマンス出ない…とか
PrismとかはInteractionRequestがリークの元で扱い気をつける必要があるetcとかをチームに展開するのが億劫とか…
0030デフォルトの名無しさん
2014/09/14(日) 20:14:52.71ID:87mYTJKv0031デフォルトの名無しさん
2014/09/14(日) 20:51:11.44ID:vdvszDXw分解して紐づければ標準機能でもできるけど歪なんだよな
0032デフォルトの名無しさん
2014/09/14(日) 22:02:18.90ID:7N0LEKlz0033デフォルトの名無しさん
2014/09/15(月) 09:07:05.25ID:e89ZEgqy0034デフォルトの名無しさん
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:uMFi5zPa0038デフォルトの名無しさん
2014/09/16(火) 14:15:06.50ID:ASfuJDWa0039デフォルトの名無しさん
2014/09/16(火) 21:51:47.47ID:fBY9LEt5書いたら売れんのかしら
0040デフォルトの名無しさん
2014/09/17(水) 10:54:17.83ID:k7ATJ22m0041デフォルトの名無しさん
2014/09/17(水) 12:41:09.62ID:wZ4zyUjD英語の勉強の必要性
0042デフォルトの名無しさん
2014/09/17(水) 13:24:24.23ID:sIgujKHq0043デフォルトの名無しさん
2014/09/17(水) 13:30:23.23ID:UF9YVziV「WPFとかオワコンだしwwww」
って思ってるから売れないよ
見向きもされない
0044デフォルトの名無しさん
2014/09/17(水) 14:14:31.53ID:or6PO8CM0045デフォルトの名無しさん
2014/09/17(水) 14:18:55.63ID:RhGPlwMd0046デフォルトの名無しさん
2014/09/17(水) 15:17:23.27ID:or6PO8CM0047デフォルトの名無しさん
2014/09/17(水) 16:45:33.98ID:UWxtUwZE0048デフォルトの名無しさん
2014/09/17(水) 18:19:57.21ID:RhGPlwMd0049デフォルトの名無しさん
2014/09/17(水) 19:08:23.50ID:ji0sMMymXAMLの不安になるブラックボックスさもクライアントサイドだから許せる
0050デフォルトの名無しさん
2014/09/18(木) 08:54:36.69ID:aakCeMAg0051デフォルトの名無しさん
2014/09/18(木) 17:05:32.61ID:B59MRMnMコード分析にて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:pZJGAVB9005451
2014/09/24(水) 10:40:50.31ID:y1DRQEzd>>53
新規に作成したばかりのプロジェクトでも起こるんですよね。
自分の環境だけなのかな?
とりあえず無視して作業してますが原因が知りたい・・・
0055デフォルトの名無しさん
2014/09/24(水) 14:06:54.29ID:x+4QYqZMこれを .NET3.5以上でビルドすると、滲まずに正常に表示されます。
.NET3.0で滲まないようにできますか?
005655
2014/09/24(水) 14:15:45.06ID:x+4QYqZMWin7のVS2013のC#でビルドして、WinXPで実行した場合に滲みます
Win7では.NET3.0でも滲みません。
0057デフォルトの名無しさん
2014/09/24(水) 16:44:27.79ID:oELApLTY仕組み的に無理な気がするけど識者の方よろ
0058デフォルトの名無しさん
2014/09/24(水) 17:27:00.32ID:q/tWfyQ0いやいや
だから初期化したばかりなのにまた変えてるから問題なんでしょ?
変えるなら初期化のところでやれってこと
理解してね
0059デフォルトの名無しさん
2014/09/24(水) 20:54:35.42ID:3Lqe917YWPFはSystem DPI Aware
MSDNの田中達彦のブログをググれば詳しく載ってる
0060デフォルトの名無しさん
2014/09/25(木) 12:15:29.25ID:9IG4OD/PDPI云々の話じゃなくて、3.0とかはアンチエイリアスがーってはなしじゃねーの?
006151
2014/09/25(木) 12:36:41.28ID:6ODIHvxlバインドするなりForm_Loadで設定するなりすれば回避は出来ました。
ただ根本の「コンストラクタのInitializeComponentの後にコントロールに値を設定するのが
C#は良くてVBはダメな原因」が知りたいのです。
0062デフォルトの名無しさん
2014/09/25(木) 12:45:01.12ID:swWOjTgx0063デフォルトの名無しさん
2014/09/25(木) 14:14:52.32ID:X+8MuYIvこれは見た?
http://msdn.microsoft.com/ja-jp/library/ms182331.aspx
006451
2014/09/25(木) 15:22:11.38ID:6ODIHvxlそうですね、時間が取れたらすぐ試してみます。
>>63
はい、すでに見ていました。
プロパティにアクセスしているだけなので何故この警告が出るのか分からず、
C#とVBで差異はないかと試したところ、C#では警告が出なかったことが質問する発端でした。
0065デフォルトの名無しさん
2014/09/25(木) 20:53:44.05ID:RezO5tVl警告の内容みるかぎり、むしろC#のコード分析で警告でないほうがおかしいと思うんだが
まあ、ちゃんと環境書かないようなやつの発言が信頼できるかどうかわからん
0066デフォルトの名無しさん
2014/09/25(木) 21:10:28.52ID:LKyNfarpコンパイラの方針の違いだろ
VBは初心者多いから丁寧なんだろ
そんなもんフィーリングでわかるだろ?
警告は警告
それだけ
0067デフォルトの名無しさん
2014/09/25(木) 21:12:27.61ID:LKyNfarpC#ではいいVBではダメじゃなくて
VBは過保護でC#そこまで言うことかよってことだろ
0068デフォルトの名無しさん
2014/09/25(木) 22:22:50.69ID:6btel42hVSのコード分析機能は基本的にコンパイル語のILに対して静的コード解析をかけるツールだよ
解析対象になった時点で、元のソースがVBかC#かという情報は失われていて、
(発生箇所示すためのデバッグシンボル情報残ってるから完全に同じとは言えないけど)
たとえF#で書こうとも同じバイトコード吐く限り同じ警告が出るはず
0069デフォルトの名無しさん
2014/09/25(木) 22:55:13.44ID:BRBG9RnsC#のフィールドとはIL的に全く別物だから警告が出るのですが
0070デフォルトの名無しさん
2014/09/26(金) 02:02:16.57ID:h5xYqq51横から、マジか!
ありがとう、はじめて知った
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:/G5WDaURVBはVBAだけでええんや・・・
0073デフォルトの名無しさん
2014/09/26(金) 23:47:18.50ID:Syn8n5WzVB.NETみたいな似て非なるものって正直困る
0074デフォルトの名無しさん
2014/09/27(土) 00:58:36.36ID:+W5oEGhJF#暗い違うならまだ残す価値もあろうかと思うが
0075デフォルトの名無しさん
2014/09/27(土) 03:00:56.10ID:jYunIRKZ0076デフォルトの名無しさん
2014/09/29(月) 13:36:19.08ID:WJqfJJMH本当そうなんだよな。
Native .NETもC#だけだしVB.NETの存在意義がわかんないよね
VB.NET残すならいい加減OfficeにVB.NET for Application実装しろよな
0077デフォルトの名無しさん
2014/09/29(月) 17:30:47.92ID:csnFvbxb0078デフォルトの名無しさん
2014/09/29(月) 21:33:07.25ID:VGe8V2tz個人的にはpythonライクな言語が乗っかれば嬉しいが。
0079デフォルトの名無しさん
2014/09/29(月) 23:19:07.74ID:Ie/s9Uq20080デフォルトの名無しさん
2014/09/30(火) 01:12:30.43ID:02iu1aKEなんでソッチまでいつまでもVB6相当なのかと
0081デフォルトの名無しさん
2014/09/30(火) 10:15:35.36ID:WBCRDKKS0082デフォルトの名無しさん
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この情報から読み取れる範囲の実装を手元で試してみたが、何の問題もなく動くぞ
再現するソリューションごとzipにでも固めてうpろだに置いたら?
0084デフォルトの名無しさん
2014/10/05(日) 13:06:22.67ID:cZeU51UR0085デフォルトの名無しさん
2014/10/05(日) 13:23:05.24ID:fqPBGj5Upublic static readonly RoutedEvent MyControlTouchEvent =
EventManager.RegisterRoutedEvent("MyControlTouch", RoutingStrategy.Bubble, typeof(RoutedEventHandler/* コレ*/), typeof(MyControl));
だけ直すといいという話だが、そういう話なのかがわからん
0086デフォルトの名無しさん
2014/10/05(日) 13:32:51.48ID:fqPBGj5Uhttp://ideone.com/OyjjrI
こう実装してエラー出るなら、使う側がなんかおかしな事をしている
008782
2014/10/05(日) 22:30:23.86ID:JGc2UVUVご回答ありがとうございました。
教えて頂いた内容でトライしてみます。
008882
2014/10/05(日) 23:14:07.58ID:JGc2UVUV82です。
上記の質問の件ですが、解決しました。
>>85さんと>>86さんの指摘通り、RegisterRoutedEventの第3引数をRoutedEventArgsからRoutedEventHandler
に変えると正常に動作するようになりました。
皆様どうもありがとうございました。
0089デフォルトの名無しさん
2014/10/06(月) 07:27:31.12ID:zfRIxHo4この手のParseExceptionなら静的なコードの結びつけで出るはずでメソッドの定義間違いが基本的に原因ってことかね。
けどコンパイル時になんで弾けないんだろう
0090デフォルトの名無しさん
2014/10/13(月) 20:54:36.64ID:kcgyXwLDStackOverFlowとかみてもXaml側で列定義があること前提の説明しかないんだけど
0091デフォルトの名無しさん
2014/10/13(月) 21:37:29.32ID:VpLEezN1DataGrid コントロール内で自動生成される列をカスタマイズする
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<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:1m6GjPESTextBoxBase.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データ一覧画面からデータを選択して編集ダイアログを表示するときの、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:ZY5NuSBSIMEがTSFに対応してるかどうかで動作が変わるのは仕様と諦めた方が良いと思うよ
0097デフォルトの名無しさん
2014/10/24(金) 14:46:35.09ID:1m6GjPES調べてみたらGoogle日本語入力は8だとTSFになるのね
とりあえずTemplateから中のPART_EditableTextBoxを取得してやることで、無理矢理解決することにする
0098デフォルトの名無しさん
2014/10/24(金) 16:25:19.68ID:IVVixABySelectedValue="{Binding Path=[memberCode]}"
を追加することでOKでした。
0099デフォルトの名無しさん
2014/10/25(土) 14:13:11.11ID:iYWQL7fFTextBoxなどはKeyを定義してカスタムコントロールの依存関係プロパティにElementNameでバインドすれば反応するんですが・・・
0100デフォルトの名無しさん
2014/10/25(土) 15:43:14.45ID:h2hjhqtZ0101デフォルトの名無しさん
2014/10/26(日) 03:50:51.96ID:/PwbQhXVすいません、もう少しだけ詳しく教えて頂けないでしょうか
0102デフォルトの名無しさん
2014/10/26(日) 04:44:19.42ID:/dFVkeHL別のソースに切り替えができない理由って…?
そもそもソース切り替えが思いつかないのか、それとも切り替えてるのに反応しないのか とか
どんな問題があるのか、なんにも書いてない。
0103デフォルトの名無しさん
2014/11/13(木) 14:28:29.03ID:GjsigFAkhttp://blogs.msdn.com/b/dotnet/archive/2014/11/12/the-roadmap-for-wpf.aspx
やっとBlend作り直したらしい
0104デフォルトの名無しさん
2014/11/13(木) 18:03:27.29ID:/cz1Xj6Rそれなら最高なんだが
0105デフォルトの名無しさん
2014/11/13(木) 18:21:37.09ID:R5NTSkRE特に元wpfチームの人。まああんたもだろとは思うけど。
0106デフォルトの名無しさん
2014/11/13(木) 18:33:12.11ID:1IhIdMPE0107デフォルトの名無しさん
2014/11/13(木) 23:08:06.69ID:xQkRdx0g何時までたっても用意されんからもう手書きでBehaviorもAction/TriggerもStoryboardも書けるようなったわwww
0108デフォルトの名無しさん
2014/11/13(木) 23:16:54.72ID:dGj3ukNH0109デフォルトの名無しさん
2014/11/14(金) 23:53:47.86ID:cYzSwTLu開発してないってことかな
ちょっと残念
WPFは出てから10年近くたとうとしているのにコモンダイアログすら出せない欠陥品
いつまでこれで戦うのか?
0110デフォルトの名無しさん
2014/11/15(土) 01:06:34.01ID:Ftn0TSDn0111デフォルトの名無しさん
2014/11/15(土) 01:10:39.03ID:J8TZuH/G0112デフォルトの名無しさん
2014/11/15(土) 02:05:55.08ID:rkNEDIyx0113デフォルトの名無しさん
2014/11/19(水) 22:51:16.27ID:vXkl6GSD0114デフォルトの名無しさん
2014/11/19(水) 22:58:55.03ID:g6yRyndh手作業で編集しなくちゃいけないでしょ?
そんなの嫌だわ。
0115デフォルトの名無しさん
2014/11/19(水) 23:23:18.07ID:z3yXCTNW最低限コントロールとパネルは把握する必要があるけど
0116デフォルトの名無しさん
2014/11/19(水) 23:37:02.50ID:YrBXnAjBVSのみでもなんとかなるくらい良くなってる
はよ結合してほしいけど
0117デフォルトの名無しさん
2014/11/20(木) 00:03:17.00ID:LNsblCfNつーかデザイナーでやる方が結構だるい。
編集した結果がすぐ表示してくれさえすればXAML直でいじる方がいいかなー
0118デフォルトの名無しさん
2014/11/20(木) 00:18:05.53ID:+leAc8pXXamlのカスタムコントロール実装しまくってれば嫌でも覚える
ぶっちゃけ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+0122デフォルトの名無しさん
2014/11/20(木) 01:31:46.57ID:mrnF6vLaコピペしたからミスってんじゃんw みたいなのがあってたまに面白い
0123デフォルトの名無しさん
2014/11/20(木) 08:24:44.96ID:ppCu/2/P理論上では
0124デフォルトの名無しさん
2014/11/20(木) 11:15:16.72ID:4pbMemBsうまく使い分けできればいいんだろーなー
0125デフォルトの名無しさん
2014/11/20(木) 15:25:10.21ID:EwXerdR3> 手作業で編集しなくちゃいけないでしょ?
> そんなの嫌だわ。
なれると結構複雑なレイアウトでもさくさく作れるようになるよ。
0126デフォルトの名無しさん
2014/11/20(木) 17:06:15.95ID:YzPn98xH0127デフォルトの名無しさん
2014/11/20(木) 17:32:13.70ID:r+IPtN/m0128デフォルトの名無しさん
2014/11/20(木) 19:35:30.17ID:KrbIl1YAスクリーンサイズが変わったり、ランドスケープ・ポートレートが変わったりした時に柔軟にUI部品の配置を自動構成しようとするとプログラマ的な知識と発想が不可欠。
完全な分業が成立する機会は極めて稀だろう。
0129デフォルトの名無しさん
2014/11/20(木) 22:17:53.38ID:PdeJEG1m0130デフォルトの名無しさん
2014/11/20(木) 22:22:36.20ID:hXnIjUet0131デフォルトの名無しさん
2014/11/20(木) 22:24:41.85ID:+leAc8pXあと疎結合っつってもVとMの話で凝ったデザインや複雑な機能実装しようとしたらコードビハインド避けられないからV・VMは密結合しちゃう
Behavior/Trigger/Actionだけじゃ無理、デザイナーとの分業云々はただのキャッチコピーでしかない
0132デフォルトの名無しさん
2014/11/20(木) 22:50:07.59ID:hXnIjUet0133デフォルトの名無しさん
2014/11/21(金) 09:14:56.30ID:Yej2PQ/o0134デフォルトの名無しさん
2014/11/21(金) 10:09:33.44ID:qLCHZ6x8> スクリーンサイズが変わったり、ランドスケープ・ポートレートが変わったりした時に柔軟にUI部品の配置を自動構成しようとするとプログラマ的な知識と発想が不可欠。
不可欠だけど、一旦わかってしまえばあとはサクサク作れるでしょ。
WPFのレイアウト機能とバインディングを知ってしまうと、Windows Form使うのが馬鹿らしくなる。
0135デフォルトの名無しさん
2014/11/21(金) 10:54:51.93ID:XLOCwnD5デザイナーに不可欠なんだぞ?
0136デフォルトの名無しさん
2014/11/21(金) 11:38:48.94ID:qLCHZ6x8> デザイナーに不可欠なんだぞ?
> スクリーンサイズが変わったり、ランドスケープ・ポートレートが変わったりした時に柔軟にUI部品の配置を自動構成しようとする
のにそれほどプログラマ的な発想が必要とは思えないけど、デザイナって職種の人は、
その程度もできない奴らばっかなの?
0137デフォルトの名無しさん
2014/11/21(金) 12:14:29.07ID:CXhEo5PP何でだよ
展開的なM側の処理やんけ
0138デフォルトの名無しさん
2014/11/21(金) 12:17:50.14ID:5iaw/CMTデザイナーという職種の人間達が、それを自分達の仕事の範疇だと
受け入れてくれるかどうかだ
誰だって余計な仕事を増やしたくはないわな
0139デフォルトの名無しさん
2014/11/21(金) 12:29:26.70ID:QojeTjqoDrag&Dropなんてエフェクトが派手なだけで処理の内容はコピーペーストと一緒だろ
コピペとして見せるかD&Dとして見せるかはあくまでVの仕事
0140デフォルトの名無しさん
2014/11/21(金) 12:50:50.29ID:qLCHZ6x8デザイナ側を説得できないのなら、プログラマがやればいいのに。
0141デフォルトの名無しさん
2014/11/21(金) 12:52:40.74ID:hy3lrdl+つーてもドラッグしてる場所によってカーソルやドラッグ出来るかの表示をマークしたいなどはVMの中の値知らなきゃ出来んだろ。
いろんな宗派あると思うが自分はVMはそのビューに関するロジックを一手に引き受けてビュー側はバカなままにしてく派なので、その場合はドラッグドロップもVM主体になること多そう。
0142デフォルトの名無しさん
2014/11/21(金) 12:55:20.37ID:5iaw/CMTなにを言ってるのかわからんがw、
プログラマーの土方仕事を手伝わされるのなんてまっぴらごめん、
ってのが平均的なデザイナー連中の偽らざる心境だろうな
0143デフォルトの名無しさん
2014/11/21(金) 13:00:33.14ID:XLOCwnD5だれか解説してくれ
>>128
柔軟にUI部品の配置を自動構成しようとするとプログラマ的な知識と発想が不可欠。
>>134
不可欠だけど、一旦わかってしまえばあとはサクサク作れるでしょ。
>>135
デザイナーに不可欠なんだぞ?
>>136
>柔軟にUI部品の配置を自動構成しようとする
のにそれほどプログラマ的な発想が必要とは思えないけど
0144デフォルトの名無しさん
2014/11/21(金) 13:04:09.66ID:qLCHZ6x8それほどごつい「プログラマ的発想」なんか必要ないってこと。少しは必要だけど。
で、読んでるとV全てをデザイナが作る的なこと言ってる感じなんだけど、みんなのとこもそうなの?
0145デフォルトの名無しさん
2014/11/21(金) 13:22:51.33ID:QSbzssdP0146デフォルトの名無しさん
2014/11/21(金) 13:22:57.71ID:QqoeY8P50147デフォルトの名無しさん
2014/11/21(金) 14:38:55.92ID:KkEqVgaz今、pg ≒ desiner
0148デフォルトの名無しさん
2014/11/21(金) 16:33:13.28ID:8+ZPGGY30149デフォルトの名無しさん
2014/11/21(金) 17:16:37.36ID:KkEqVgazうっせー!gがぬけただけだろーがっ!;;
0150デフォルトの名無しさん
2014/11/21(金) 17:23:40.59ID:8+ZPGGY3プログラマーにもデザイナーにも向いてないよ
0151デフォルトの名無しさん
2014/11/21(金) 17:44:07.35ID:QqoeY8P5XAMLはまだエラーにしてくれるからいいですね
0152デフォルトの名無しさん
2014/11/21(金) 18:28:42.52ID:9R4men3QできるだけVMにやらせたいのは俺も同じなんだが、いざ実装するとListViewやListそのものをVMに渡さない限り可也ハードだわ
それかビヘイビア作るかの選択だが、こねくり回した結果Vに実装するのが一番楽というのが俺の感想
0153デフォルトの名無しさん
2014/11/21(金) 20:10:25.60ID:xRW4Ikjwmy:DnD.OnCopy="{Binding CopyCommand}"
my:DnD.OnMove="{Binding MoveCommand}" />
って感じにコマンドをバインドしてデータオブジェクトを渡しつつCanExecuteとExecute呼ぶだけじゃないの?
インサーションマークとかそういうエフェクトはVMに諮る必要ないし
0154デフォルトの名無しさん
2014/11/21(金) 22:14:41.40ID:+pbtUPQJそういうんではそっちの方が楽ならありだと思うよ。
自分はなるべくVM側でやるけどそれが難しいならコードビハインドでやればいいだけ。
宗教的にこっちでやらなきゃいけないからゴチャゴチャ作りこむのが一番バカだと思う。
0155デフォルトの名無しさん
2014/11/21(金) 23:18:19.91ID:3da9QPwdそれはVMに持たせるデータ足りてないんじゃないの?
View側がマスターとして振る舞うデータとか本当に一握りだろ
0156デフォルトの名無しさん
2014/11/22(土) 00:35:13.65ID:SUa4fXA8データ取得するためと言うよりは例えば、
ListViewでDoubleClick時にCommand実行したい。
みたいな場合にビヘイビア作るよりVに書いたほうが楽ってことじゃない?
(DoubleClickならBlendのビヘイビアがあるけど、DoubleClickは一例として。)
0157デフォルトの名無しさん
2014/11/22(土) 00:48:09.64ID:JDmceEw+それこそビヘイビア作って手元に武器揃えておいたほうが楽じゃね?
よっぽど特殊な場合でないとコードビハインドにゴリゴリ書きたくはないなあ
0158デフォルトの名無しさん
2014/11/22(土) 06:52:04.23ID:zdky++Ll0159デフォルトの名無しさん
2014/11/22(土) 09:25:27.20ID:y0OSjNC+0160デフォルトの名無しさん
2014/11/22(土) 19:13:09.41ID:ylJJYgN6何年同じ議論してんだまったく
0161デフォルトの名無しさん
2014/11/22(土) 22:06:51.28ID:2osqXjYD本筋はカスタムコントロールじゃないのかな?
Xamlもスッキリ書けるし
0162デフォルトの名無しさん
2014/11/22(土) 22:15:53.34ID:zdky++Ll0163デフォルトの名無しさん
2014/11/22(土) 23:05:43.90ID:jgrooAub何がベストかは対象や使う人、宗教によって違うだろ。
自分的にはMVVMがしっくりくるけど。
0164デフォルトの名無しさん
2014/11/23(日) 08:52:32.21ID:bZbGLs+jあとモデルももっと簡素にかけたらいいんだけね
0165デフォルトの名無しさん
2014/11/23(日) 19:02:13.72ID:buNsl0xTということで最近は自分で全部作っております
0166デフォルトの名無しさん
2014/11/23(日) 19:07:34.90ID:kwCUMG++デザイナーっつっても海外みたいなセンスあるやつ一人も見たことないしね
開発者に至ってはデザインなんてどうでもいいってやつばっか
如何にデザインがエンドユーザーの体験や利便性にとって重要かってことをAppleが証明してくれてるのにまだ理解できないバカばっかだよね
業務システムにデザインなんて必要ないって・・・だからドカタって呼ばれんだよw
0167デフォルトの名無しさん
2014/11/23(日) 19:20:37.21ID:u5wQpN3r0168デフォルトの名無しさん
2014/11/23(日) 19:38:47.69ID:YUK2B7tw0169デフォルトの名無しさん
2014/11/23(日) 20:06:42.94ID:buNsl0xTよほど痛い目を見たんですねwww
0170デフォルトの名無しさん
2014/11/24(月) 17:08:38.23ID:oKFUOa0Uコードビハインドで書くか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つーても自分の中ではMVVM以上にいい感じに分離できてテストもしやすいもの思いつかんわ。
0173デフォルトの名無しさん
2014/11/24(月) 22:44:37.72ID:oKFUOa0U書き方悪かったかな、>>170で言いたいのはスタブとしてVM定義すれば書けるしテストもできるけど、でもそれだけだよね?って話
MVVMのいいところはFormみたいに直接Vを操作せず、バインドしたデータを変更するだけでVの表示を更新できることだけど
どっちにしろバイディングソース(型)がターゲットプロパティと一致しないと動かないでしょって話
じゃあV作る奴がVM作るか、VM作る奴がV作るしかないでしょってこと、分業できるのはVVM側とM側でしょって話
0174デフォルトの名無しさん
2014/11/24(月) 23:45:42.13ID:lN0wg/lw分業しないとしても、変更容易性担保する為にはV/VMの切り分けは必要でしょ
そこをごちゃまぜにするならFormと変わらん
0175デフォルトの名無しさん
2014/11/25(火) 01:21:24.29ID:CI4igYKz昔はToolkit取り込んでいくもんだと思ってた
0176デフォルトの名無しさん
2014/11/25(火) 01:35:16.52ID:9Nx+7pyK0177デフォルトの名無しさん
2014/11/25(火) 08:01:20.52ID:1jwMJAuJ悟れ
あのロードマップから感じ取れ
察しろ
0178デフォルトの名無しさん
2014/11/25(火) 11:08:46.24ID:S6K9qD6w0179デフォルトの名無しさん
2014/11/25(火) 13:28:27.13ID:Ad3NvSJCVMにするのは疎結合やメンテナンスビリティを高めるためで、複数から使われるとか関係ないとは思わんの?
0180デフォルトの名無しさん
2014/11/25(火) 14:29:56.90ID:S6K9qD6w> VMにするのは疎結合やメンテナンスビリティを高めるためで、
Vに依存する(Vの機能を実現する)ためのVMの実装で、なおかつそれが一カ所でしか使われないとき、
VMにしても疎結合やメンテナンスビリティは高まらないと思います。
0181デフォルトの名無しさん
2014/11/25(火) 15:30:10.56ID:FB0Qd6p3動画ファイルの管理ソフトなんだが、モード切り替えの処理が最小で済んだし
ファイル操作のコマンドも共有化出来て大分助かった
閑古鳥が鳴いているんで宜しければ見に来てください
http://www7b.biglobe.ne.jp/~megatherium/
0182デフォルトの名無しさん
2014/11/25(火) 15:38:55.93ID:uX0WHp+Aすごいなー
やり始めたばかりだから個人的にWPFの事をskypeなんかで教えて貰いたいわ
というかなってください!
0183デフォルトの名無しさん
2014/11/25(火) 18:17:07.96ID:Tsd4ayeqVに本当にべったりな処理をVMに書いているのが間違い
Vにべったりなら、素直にVのコードヒハインドに書くべき
VのボタンClickがComboBoxのSelectionChangeに変わっても
困らないようにする為の存在としてVMを書くのが普通
参照される箇所の数は関係ない
0184デフォルトの名無しさん
2014/11/25(火) 18:33:59.11ID:LpUSZ3vr0185デフォルトの名無しさん
2014/11/25(火) 18:34:51.77ID:S6K9qD6w> 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:Tsd4ayeqVに実装べったり書いて、XAMLでちょちょっと変えればいいだけに出来るならそれでいいんじゃね
それが難しいから、外見と振る舞いの分離できるWPFが出てきたんでしょ
それが不要な複雑さと言えるなら、仕様変更とか少なそうな良い環境だなという感想しかない
>「VMはVと独立して機能(I/F)を提供するのみ」とかいう幻想に酔ってるんじゃないの?
そもそもその幻想なるものが間違ってないか?
VMはVの状態ストア兼インターフェイスに過ぎないだろ
0187デフォルトの名無しさん
2014/11/25(火) 18:41:31.11ID:gF/FuSsKまあ君が必要ないってならひつようないんじゃない?君の中では。
0188デフォルトの名無しさん
2014/11/25(火) 18:47:23.62ID:97nZu1i9その例だとコードビハインドでイベントハンドラを共有したり、
イベントハンドラから共通のメソッドを呼べばいいだけだよね
あまり良い例じゃないと思う
0189デフォルトの名無しさん
2014/11/25(火) 18:51:39.13ID:9ZqYoo9x橋渡しやMEFなんかのサンプルを見てるがプロジェクト分けにする粒度がかなり細かい
0190デフォルトの名無しさん
2014/11/25(火) 18:55:09.18ID:Tsd4ayeq共通のメソッド呼ぶにしても、その実行時トリガとかマスターデータとする値とかの部分は
コントロール依存になっちゃって辛いでしょ。もうちょっと良い例があればいいとは思うけど。
>>189
画面領域ごとに作って差し替え可能にするのがCompositeAppの思想
安直にやるならUserControl単位で分ける
0191デフォルトの名無しさん
2014/11/25(火) 19:04:36.16ID:9ZqYoo9x中規模程度で数百プロジェクトが一つのソリューションに入るのか
あれ?そうなるとモデルはどうなってシェアしてんだろ
一カ所に集める事になるのかな?
0192デフォルトの名無しさん
2014/11/25(火) 19:14:03.03ID:Tsd4ayeqあくまで一例だけど、共通部品プロジェクト1つとShellとその他の三種類がポピュラーじゃね。
V-VM-Mっていう機能単位でプロジェクトを切ってて、
Model同士はEventAggregator(Pub-Subのアレ)を経由して相互にメッセージ送りあうみたいな。
細かい部品じゃなくて、単独で存在しても意味が分かるレベルの画面ごとにプロジェクト分ける感じで。
0193デフォルトの名無しさん
2014/11/25(火) 19:15:16.83ID:l+O8wkw2モデルが実際にどこに実装されてるかはV+VMのレベルでは感知しない
0194デフォルトの名無しさん
2014/11/25(火) 19:15:52.83ID:Tsd4ayeq>V-VM-Mっていう機能単位でプロジェクトを切ってて、
V-VM-Mのセットによる最低限の機能を実現できる単位でプロジェクトを切ってて、
の間違い
0195デフォルトの名無しさん
2014/11/25(火) 19:35:05.20ID:LpUSZ3vr0196デフォルトの名無しさん
2014/11/25(火) 19:38:41.71ID:9ZqYoo9xモデル同士の通信とVとVMはモデルを感知しないというのが気になった
後、VMよりのモデルとかDBとよりもモデルで中身が違ってきそうなんだけど
識者的にはそんなことないのかな?
なんかこんがらがってきた
もう少しサンプルを追って手を動かしてみる
サンクス
0197デフォルトの名無しさん
2014/11/25(火) 21:56:53.39ID:s4XMA/8kサービスロケーターあればいいとおもってたけど、確かに今作ってるやつで、あるイベントを取るためにインスタンスを引き回してるのとかあって、オブジェクトの階層とイベントの配信を分離できたらいいかとも思い、まさにそういうところで使うもの?
0198デフォルトの名無しさん
2014/11/25(火) 22:01:32.20ID:8ektkpGa0199デフォルトの名無しさん
2014/11/26(水) 09:06:29.26ID:xl2VyM5S有名企業のものすごい予算のプロジェクトでね
なぜこうなるのか?やっぱりMSがWPFの足回りちゃんと用意してないからだろって結論にならざるを得ない
0200デフォルトの名無しさん
2014/11/26(水) 09:43:39.63ID:QTl1+1Rv例えば?で、それがMSが足回り用意してないのに絡めて是非。
0201デフォルトの名無しさん
2014/11/26(水) 10:15:52.50ID:FixWhtAp> Vに実装べったり書いて、
「べったり」は書かないけど。
> XAMLでちょちょっと変えればいいだけに出来るならそれでいいんじゃね
> それが難しいから、外見と振る舞いの分離できるWPFが出てきたんでしょ
だから、一カ所からしか呼ばれないような処理のことを言ってるんだけど。
それがちょっと変えたりするのがなぜ難しいのか、理解できない。
「外見と振る舞いの分離できるWPF」を実現するのは何もVMだけじゃなくて、
双方向バインディングというのも大きな要素。
で、双方向バインディングの機構はVMとは直接関係ないよね。
> それが不要な複雑さと言えるなら、仕様変更とか少なそうな良い環境だなという感想しかない
あくまでも「一カ所からしか呼ばれないような処理」の話だよ?
> そもそもその幻想なるものが間違ってないか?
別にそう思ってないのならいいよ。
0202デフォルトの名無しさん
2014/11/26(水) 10:31:28.19ID:FixWhtAp> 共通のメソッド呼ぶにしても、その実行時トリガとかマスターデータとする値とかの部分は
> コントロール依存になっちゃって辛いでしょ。
うーん、これがよくわからんのだよなぁ。何が辛いの?
俺がよくやるパターンは、ある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> そもそもコード中に「一カ所からしか呼ばれないような処理」が存在しているのがバグ
> あらゆる処理には単体テストが用意されてるはずだから、本番とテストの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:1fVYxz3D0207デフォルトの名無しさん
2014/11/26(水) 11:38:31.66ID:FixWhtAp> VMじゃなくてMに押し込んでるのでなんとも言えない
トランザクションの開始と終了を?
それこそMのUnitTest辛くない?
0208デフォルトの名無しさん
2014/11/26(水) 11:53:01.14ID:FixWhtAp画面:処理(の塊)が1:多とか多:1とかはメリットがあることは理解してる。
ただ、ある画面のあるイベントハンドラでしか行わない処理(コード)を、VMに委譲するのに
何のメリットがあるのかなって思ってるわけ。
0209デフォルトの名無しさん
2014/11/26(水) 12:20:13.82ID:/DadxvyL0210デフォルトの名無しさん
2014/11/26(水) 13:03:31.55ID:CGqrvh0J俺だったらそのトランザクションはモデルに組み込むかモデルを呼び出す関数として、VMからはそのどちらかを叩く。Vは本当に馬鹿なコマンドを叩くだけとデータを表示するだけのもの。
0211デフォルトの名無しさん
2014/11/26(水) 13:17:08.72ID:FixWhtAp> MVVMは処理を分割する仕組みなんだからお前が必要ないと思うならいいんじゃねーの。
「MとVとそれをつなぐもの」という概念は、俺もどんなアプリでもそうするしWPFでもそうしてる。
ただ、ViewModelを使うとしたときに、一カ所でしか使われないものをViewModelに委譲するって
ただ単に問題を複雑にしてるだけなんじゃないのっていう疑問がある。
>>179では、そうすることによって結合度(何と何の?)が下がり、メンテナンスビリティが上がると
いうことだけど、俺は全くそうは思わない。
ちなみに、なんでそんな疑問がわいたかというと、MVVMの解説記事をググったとき、そんな
感じのページが多かったから。
0212デフォルトの名無しさん
2014/11/26(水) 13:28:08.25ID:FixWhtAp> 俺だったらそのトランザクションはモデルに組み込むかモデルを呼び出す関数として、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:nlUVLq9e0214デフォルトの名無しさん
2014/11/26(水) 14:12:16.76ID:1fVYxz3D0215デフォルトの名無しさん
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:RXuBOhEL0218デフォルトの名無しさん
2014/11/26(水) 15:57:34.92ID:PiYLX3QNだからさ、お前のしょぼいModelとViewは分離する必要がないレベルのしょぼいものなんだから好きにしろよ?
お兄ちゃん達は僕にはわからないちゃんとした仕事をしてるから必要に応じて分離する構造を採用するの。
分かった?
0219デフォルトの名無しさん
2014/11/26(水) 16:45:01.22ID:FixWhtApしょぼくないModelとViewなら分離するメリットもあるんだろうってことはわかってるさ。
ところで、あなたの場合、データベースを使うアプリの場合、トランザクション処理はどこでやってます?
0220デフォルトの名無しさん
2014/11/26(水) 18:26:00.41ID:iOY6xui30221デフォルトの名無しさん
2014/11/26(水) 19:36:06.63ID:1fVYxz3D強迫性障害の患者っぽいのが増えた
0222デフォルトの名無しさん
2014/11/26(水) 19:40:47.90ID:5G4Bbp7I0223デフォルトの名無しさん
2014/11/26(水) 19:45:14.99ID:JR4oGybMいつの間にかVにはコード書かないのが当然って風潮になったのはどうもイカンね
まあ、件の患者さんはそれ以前の話ですが
0224デフォルトの名無しさん
2014/11/26(水) 21:30:54.72ID:ry/kyO8Kなんで臨機応変にできないのかねー(´・_・`)
0225デフォルトの名無しさん
2014/11/26(水) 23:42:21.21ID:xl2VyM5S0226デフォルトの名無しさん
2014/11/26(水) 23:49:37.18ID:5G4Bbp7I0227デフォルトの名無しさん
2014/11/26(水) 23:56:32.57ID:c5anpaBrまじありえんわ
0228デフォルトの名無しさん
2014/11/27(木) 00:27:00.73ID:HxVOMPaJ0229デフォルトの名無しさん
2014/11/27(木) 00:32:18.10ID:zG8PHGwLにんげんだもの
みつを
0230デフォルトの名無しさん
2014/11/27(木) 00:48:54.85ID:40kBKy0w「あるがままにあれ
MVVMであれMVCであれ、お前のコード自体が
職としてのプログラマーに相応しいものになるだろう
たとえそれが開発者の苦しみであっても救いであっても
望むままを行え 選ばれし者よ」
0231デフォルトの名無しさん
2014/11/27(木) 01:01:29.05ID:AyF9dhDB>>225みたいなのが典型で、ViewとViewModelの役割分担すら放棄しておいて、
そのくせ悪いのはフレームワーク側とか思想とか言い出す
標準Control足りないとか仮想化付近の挙動が微妙とか不満は確かにあるが、
>>225みたいな事をしておいて「理想を追い求めすぎて実装が追いつかない」とか
笑止千万すぎる
0232デフォルトの名無しさん
2014/11/27(木) 01:45:35.61ID:jEc+RWalこれってマジレス?
EverNoteに対する皮肉じゃないの?
0233デフォルトの名無しさん
2014/11/27(木) 02:20:06.39ID:UC8SE9iH0234デフャHルトの名無しbウん
2014/11/27(木) 03:19:51.68ID:X9aIAAiW0235デフォルトの名無しさん
2014/11/27(木) 05:00:31.19ID:28wLimLTこういう場では先に出したほうが負け
0236デフォルトの名無しさん
2014/11/27(木) 06:36:33.64ID:SaiPAr3O0237デフォルトの名無しさん
2014/11/27(木) 07:34:42.20ID:ZoBqTrPg0238デフォルトの名無しさん
2014/11/27(木) 08:57:52.47ID:irZjfjLuVに対してアクション起こさせたいならその起点となるイベントなり値をVMが出してVが反応するだけ。
リフレクションで直弄るとかなんのために分けてるのかと小一時間。
0239デフォルトの名無しさん
2014/11/27(木) 10:12:55.75ID:r+bsdp9/0240デフォルトの名無しさん
2014/11/27(木) 14:34:29.72ID:EV0Yu6SLBindingくらいにしか使ってなくてスマンな
0241デフォルトの名無しさん
2014/11/27(木) 15:29:43.57ID:jzYBO3Q2VにもMにもトランザクションは書かない
XMLの定義ファイル(←これはウンコだから変えたいとは思う)に記述して
アスペクト指向で実際のコードに動的に編み込む
0242デフォルトの名無しさん
2014/11/27(木) 17:11:51.73ID:jEc+RWalBindingを使ってれば、VMに書くべき事は自然とVMに書くようになるし
コードで簡潔に書ける事までBehaviorを使ったりすると
XAMLがごちゃごちゃして逆に保守性が下がるよ
0243デフォルトの名無しさん
2014/11/27(木) 18:39:57.00ID:xQ+hc8uv0244デフォルトの名無しさん
2014/11/28(金) 01:07:56.67ID:81UHxOcA太い赤線引いた後細い青線引く以外に実装方法ってありますか?
DropShadowEffectで似たようなことできるけど、これだと影の部分にMouseEnter飛ばなくて…
(スタイルとか書けば飛ぶんだろうけど、やり方がちんぷんかんぷん)
0245デフォルトの名無しさん
2014/11/28(金) 10:15:05.39ID:olxTTeEH> XMLの定義ファイル(←これはウンコだから変えたいとは思う)に記述して
> アスペクト指向で実際のコードに動的に編み込む
そのやり方が素晴らしいと思ってやってるのか、それともそうでもしないとトランザクション処理を入れられないのか。
0246デフォルトの名無しさん
2014/11/28(金) 10:29:09.02ID:NLRHMM1Hそこまで可変にする必要があるの?
0247デフォルトの名無しさん
2014/11/28(金) 13:23:36.15ID:q6k2pKLVVに実装するかMに実装するかという下らない議論よりはマシだと思う
0248デフォルトの名無しさん
2014/11/28(金) 13:48:09.47ID:olxTTeEHいずれにしてもどっかにDIするんだろうけど、実現方法はどうでもいい。特にオレオレ実装なら。
0249デフォルトの名無しさん
2014/11/28(金) 13:52:05.22ID:olxTTeEH> Vに実装するかMに実装するかという下らない議論よりはマシだと思う
Mに実装しようと思ってた人/していた人にとっては有益かもよ。
0250デフォルトの名無しさん
2014/11/28(金) 19:20:58.95ID:OYKH5wBF0251デフォルトの名無しさん
2014/12/03(水) 22:25:07.78ID:mq79HQDGhttp://blogs.msdn.com/b/shozoa/archive/2014/12/02/the-roadmap-for-wpf.aspx
0252デフォルトの名無しさん
2014/12/03(水) 23:14:56.78ID:j+yTAGJBはやく統合しる
0253デフォルトの名無しさん
2014/12/03(水) 23:21:30.50ID:jV/2CiAX0254デフォルトの名無しさん
2014/12/03(水) 23:36:59.86ID:16uBC3Xh0255デフォルトの名無しさん
2014/12/05(金) 23:21:59.41ID:3HvtcmF20256デフォルトの名無しさん
2014/12/05(金) 23:30:06.55ID:FHrEJZsP0257デフォルトの名無しさん
2014/12/05(金) 23:39:52.50ID:5EtPU4zr0258デフォルトの名無しさん
2014/12/06(土) 00:22:42.74ID:JO5y7K/X0259デフォルトの名無しさん
2014/12/06(土) 16:32:05.01ID:rkxW+A3/(´・ω・`)
0260デフォルトの名無しさん
2014/12/06(土) 16:55:44.37ID:J+Io2gEYWPFでOKなXAMLがストアアプリだとアウトだったりするし
0261デフォルトの名無しさん
2014/12/07(日) 00:06:31.15ID:Zzop2ylY0262デフォルトの名無しさん
2014/12/07(日) 00:11:43.24ID:MBowMBvfわかる
0263デフォルトの名無しさん
2014/12/07(日) 00:16:53.32ID:5CT1OZvc0264デフォルトの名無しさん
2014/12/07(日) 15:44:22.66ID:VB81vSGp0265デフォルトの名無しさん
2014/12/11(木) 00:29:57.38ID:ylLwvZCk0266デフォルトの名無しさん
2014/12/11(木) 00:34:41.05ID:ZX63Ctk00267デフォルトの名無しさん
2014/12/11(木) 00:36:42.41ID:a/M3zwJ7MVVMならほぼ全ての状態がVMにあるはずだから、そこクリアすればいいんじゃない
VMにも置かないレベルの状態をクリアしたいなら、
Messenger的なものをトリガーにしてViewを動かせば?
0268デフォルトの名無しさん
2014/12/11(木) 00:41:32.21ID:ZX63Ctk0???俺のザムルちからが足りないようだ。クリアしたい内部の状態をクラスにまとめて依存関係プロパティで公開しとけってこと?
後者はインタラクションとか使ってview上で処理しちゃえってことかな…?
検討違いも甚だしかったらごめん。
0269デフォルトの名無しさん
2014/12/11(木) 00:50:30.46ID:a/M3zwJ71行目の意味がちょっと分からんが、言いたいことは、
そもそも厳密に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:mNe9gq8O0272デフォルトの名無しさん
2014/12/11(木) 08:56:59.40ID:a/M3zwJ7そしてVMにイベント定義してVのコードビハインドでイベント登録するヤツが現れるまでテンプレ
0273デフォルトの名無しさん
2014/12/11(木) 09:00:13.59ID:2LyM0kV6馬鹿らしい
0274デフォルトの名無しさん
2014/12/11(木) 09:01:13.78ID:2LyM0kV6愚かの方がニュアンスとして正しい
0275デフォルトの名無しさん
2014/12/11(木) 09:05:41.03ID:a/M3zwJ7そういう奴がいつまでも居るからV-VM間の結合が切れない
実質MVVM前提のフレームワークなんだから理由が無ければ作法には従えよ…
0276デフォルトの名無しさん
2014/12/11(木) 09:16:42.92ID:2LyM0kV6健康のために死ぬようなアホと一緒にしないでくれ
0277デフォルトの名無しさん
2014/12/11(木) 09:17:48.08ID:2LyM0kV60278デフォルトの名無しさん
2014/12/11(木) 09:20:36.97ID:2LyM0kV60279デフォルトの名無しさん
2014/12/11(木) 09:27:28.40ID:mNe9gq8Oそれなんか悪いのか?
ビューがシンでVMが全てコントロールできるなら手段はなんでもいいと思うけど。
作法に従った時の明確なメリットって何?
XAMLで全部記述できる以外。
0280デフォルトの名無しさん
2014/12/11(木) 09:28:58.40ID:mNe9gq8OVMがVに依存してなければ構わんだろ
0281デフォルトの名無しさん
2014/12/11(木) 09:39:37.83ID:a/M3zwJ7アホだのバカだの、そんなにストレス溜めてると早死すんぞ
>>279
手段はなんでもいいけど、Messenger的なものをわざわざ使わないメリットがないという話
フレームワーク備え付けを使ったり使わなかったりするのは実装側の混乱を招く
全部イベントで、MVVMインフラ使ってないというなら有りだが、そんな環境ほぼないでしょ
>>280
結合切れる安易な手段があるのに、良く分からないから使わないみたいなのは普通に困るぞ
0282デフォルトの名無しさん
2014/12/11(木) 10:05:33.47ID:mNe9gq8OMessenger的なものはフレームワークによってまちまちだからWPFで一つのフレームワークしか使わないってんなら良いけど他のも考えると使いづらいんだよね。
でそもそもMessengerを使うメリットとしては
1.より疎結合にできること
2.XAMLでの記述で完結することもできる
ってことで良い?
1.の疎結合は静的より動的で良いとか直に結合しないでいいってことだと思うけど、自分的には型が使えるナイスなやり方あるならそっちのほうがいいし、直につながらないことにこの場合どれだけのメリットあるかは疑問。循環参照にならないってのは良いかもだけど。
イベントアグリゲータ的なものは直につながらないことでメリット得られる場面多々ありそうだけど。
0283デフォルトの名無しさん
2014/12/11(木) 10:24:59.47ID:E6q5DBcF0284デフォルトの名無しさん
2014/12/11(木) 16:11:30.00ID:4YDQNeuU> 循環参照にならないってのは良いかもだけど。
一番重要なのはこれでしょう
設計上の循環参照じゃなくて、実装上の循環参照という意味でね
VとVMの寿命が異なる場合、循環参照があるとメモリリークするので、何らかの対策が必要になるわけだけど
その中で、最もユーザーに負担の無い形の1つがWeakEvent
そして、WeakEventを手軽に扱えるようにしたのがMessenger
XAMLとの親和性はオマケみたいなものだよ
この利点をふまえた上でMessengerを使わないって判断なら、それはそれでアリ
他の方法はいくらでもあるしね
0285デフォルトの名無しさん
2014/12/12(金) 16:21:08.75ID:qK4pyd2f0286デフォルトの名無しさん
2014/12/12(金) 18:04:47.38ID:Kcc+ZLL60287デフォルトの名無しさん
2014/12/12(金) 18:19:30.28ID:6gZpkip4ビジネスロジック内で「TimerでClear」という動作してたらどうやってClear呼ぶんスかねって所が問題なんだなあ
0288デフォルトの名無しさん
2014/12/12(金) 18:32:17.73ID:Q0dXKlle「なお、君の入力内容は自動的に消滅する」
ってやつ?
0289デフォルトの名無しさん
2014/12/12(金) 18:35:11.13ID:6gZpkip4そうね
あるいは、ネットワーク越しのどっかからClear要求が来た時にClearとか
0290デフォルトの名無しさん
2014/12/12(金) 18:50:11.44ID:UGF1tSayMVVM脳のせいで頭が麻痺してるのか?
0291デフォルトの名無しさん
2014/12/12(金) 18:52:39.68ID:6gZpkip4それでどうやって画面とビジネスロジック分離すんの?
0292デフォルトの名無しさん
2014/12/12(金) 19:18:42.19ID:UGF1tSayMVVMでない場合のビジネスロジックより責務が広いんだよ
だから「MVVMにおけるビジネスロジック」は他の方法では「分離できない」が答えになるし、
MVVMを使わない人から見れば
「分離しようとしているのはビジネスロジックじゃねーよ」「ビジネスロジックは既に分離できている」
になる
0293デフォルトの名無しさん
2014/12/12(金) 21:26:07.00ID:U0wh3Lf5javascriptのMVVMフレームワークが出てくるまで
MVVMなんて閑古鳥だったのさ
え、今も?
そうだね^^
いつだって実用主義者が世の中を引っ張ってるよね
0294デフォルトの名無しさん
2014/12/12(金) 22:03:32.72ID:Lr+MeQ2+イベントでつながったとしてもその辺は保たれるので、Weakじゃないデメリットが問題ないならイベントでも構わんでしょ
0295デフォルトの名無しさん
2014/12/13(土) 00:36:33.10ID:K/SDaM390296デフォルトの名無しさん
2014/12/13(土) 01:03:28.81ID:vyF2BbLt0297デフォルトの名無しさん
2014/12/15(月) 13:37:43.02ID:AtKnrGoa> それでどうやって画面とビジネスロジック分離すんの?
ん、何で分離できてないなんて思うんだ?
0298デフォルトの名無しさん
2014/12/15(月) 14:17:43.06ID:Uj35lJilこれならビューとモデルを分明確に離できる
0299デフォルトの名無しさん
2014/12/15(月) 14:31:25.07ID:AtKnrGoaつまんないよ
0300デフォルトの名無しさん
2014/12/15(月) 16:40:06.11ID:Uj35lJilなんで?Formsでも普通にやってるじゃん
0301デフォルトの名無しさん
2014/12/15(月) 17:23:06.43ID:AtKnrGoaなんだ、単にわかってないだけか
>>298だと単に役割を分割しただけで、「分離」はできていない
0302デフォルトの名無しさん
2014/12/15(月) 20:00:18.20ID:Uj35lJilなんで?まさか分離コード使わないことが分離とか言いださないよな
0303デフォルトの名無しさん
2014/12/15(月) 20:04:14.79ID:1MwIPKbXModelの変更の影響がViewの実装に影響してるし、逆も然りでしょ
FormsでいうViewとModel間の結合の役割は、MVVMではViewModelとModelの結合だと思ったほうがいいよ
0304デフォルトの名無しさん
2014/12/15(月) 20:18:50.73ID:JBQWSxKzViewModelはModelを抽象化する層じゃないよ
その「分離」はViewModelの目的じゃないし、そもそも、完全に分離できるケースは限られている
「分離」したいなら、ViewModelとModelの間にもう一つ層を挟むべきで、
ViewModelでやるべきじゃない
ViewModelはViewとModelのギャップを埋めることに徹するべき
0305デフォルトの名無しさん
2014/12/15(月) 20:18:56.05ID:aer3P+Xr0306デフォルトの名無しさん
2014/12/15(月) 20:25:24.85ID:+Z9zwLkJ0307デフォルトの名無しさん
2014/12/15(月) 20:26:05.87ID:1MwIPKbXViewModelがModelを抽象化する層じゃないのは、当然そうでしょ。
ViewModelはViewを抽象化するための層であって、Model…ロジックには基本的に影響しない。
MVVMで言うViewとModelの分離っていうのは
FrameworkElementクラスを継承したControl群とロジックが直接結びつかないという意味でしかない。
ViewModelとModelの間の層という表現はおかしくて、ViewとViewModelで画面を表現し、
それ以外の全てのロジックはModel層に属するんだから、そこに新しい層なんて必要ない
0308デフォルトの名無しさん
2014/12/15(月) 20:35:17.51ID:Uj35lJilはぁ?Modelの変更がViewに影響与えることはあっても、なぜViewの変更がModelに影響与えるのよ?
0309デフォルトの名無しさん
2014/12/15(月) 20:42:50.30ID:1MwIPKbXViewの呼び出し単位が代わったらModelが公開してるI/Fの粒度が変わりうるというような意味で書いたが、
それ単純に設計がクソなだけだな。MVVM関係ないわ。
Modelに影響を与えうる系の所は忘れてくれ
0310デフォルトの名無しさん
2014/12/15(月) 20:49:07.11ID:JBQWSxKz> 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>それだと「分離」による「Model変更時のViewへの影響」の排除はほとんどできていないと思う
>もし改善があるなら、元のコードが汚いだけ
Viewへの影響は排除できるでしょ。ModelがViewを一切関知しないんだから。
実際のControlクラス群と関係ない「抽象化された外見」であるViewModelとModelが結合し、
ViewModelとViewがBindingを介して緩くつながる事で、
具体的な外見である「View」とロジック部分である「Model」が分離されるでしょ
0312デフォルトの名無しさん
2014/12/15(月) 20:57:44.45ID:aer3P+XrというかVMより下のWPFと直接関係ない層の話は余所でやれ
0313デフォルトの名無しさん
2014/12/15(月) 21:11:16.68ID:1MwIPKbXModelの意味ってViewとViewModel以外 以上の意味は存在しない
って所まではそろそろ一般的に知られてるんじゃないの?
VM以下の話はしてるつもりないんだが
0314デフォルトの名無しさん
2014/12/15(月) 21:16:12.11ID:JBQWSxKz言い方が悪かったね
Model変更時の
Viewの変更量(VM無しの場合)≒Viewの変更量+ViewModelの変更量(VMありの場合)
になるので、メリットとは言えない、と言いたかった
> Viewへの影響は排除できるでしょ
Modelが変更されると必要な表示項目が増えたりするので、排除できてるってほどでもないと思う
> 実際のControlクラス群と関係ない「抽象化された外見」であるViewModelとModelが結合し、
FrameworkElementの継承階層自体が既に「抽象化された外見」なんだよ
具体的な外見はControlTemplateによって提供される
だから、ViewModelを挟んだところで、影響が大きく減るわけじゃない
0315デフォルトの名無しさん
2014/12/15(月) 21:22:17.84ID:aer3P+Xr思うところはあるけど落としどころの見えない抽象論をこれ以上混乱させる気はないので好きにやってください
0316デフォルトの名無しさん
2014/12/15(月) 21:29:59.44ID:1MwIPKbX>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俺はさ
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どっちの場合でもVMがあろうが無かろうがMに変化は無い気はするが、
>・ViewModelを使用しない場合と変わらない部分(4のみ)
って本当に画面とかの都合が全く関係ない部分の事をModelと呼ぶヤツだよね?
いわゆる後者の「Model」って、用語的にはWeb系のサーバーサイドとかの用語である「Model」であって、
MVVMが表現している所の「Model」じゃないって認識だな。
基本的にリッチクライアントにおけるパターンなんだから、メモリ上の状態を持つ奴は誰か居るはずだし。
0319デフォルトの名無しさん
2014/12/15(月) 22:31:08.88ID:G60neC2E道具に「使われて」いることを自慢するスレ
0320デフォルトの名無しさん
2014/12/15(月) 22:56:41.19ID:QJlH11r8自分的にはモデルとかはアクターで実装してVMは画面を表示するのに必要なほぼ全てのロジックを持つものってことで検討の余地があまりないんだよな。
まあもっと綺麗にかける方法あるかもだけど多分そこを突き詰めてもあまりメリットない。
0321デフォルトの名無しさん
2014/12/15(月) 23:18:51.15ID:1MwIPKbXそれで十分じゃね? VM以上が分離できてる前提を共有できてさえいれば、具体的な話が出来る
観念的なMVVMの話題は前提として、実装方法とか設計方法の話をしたい
0322デフォルトの名無しさん
2014/12/15(月) 23:30:05.59ID:x1tnaevVMVVMについて語ろう
http://peace.2ch.net/test/read.cgi/tech/1338948213/
0323デフォルトの名無しさん
2014/12/15(月) 23:48:50.53ID:ErlBthznWPFを本格的に使おうと思ったらMVVMと切り離すのは難しいからしょうがない部分もあると思うけどね。
その場限りのテキトーツールなんかはコードビハインドにゴリゴリ書いたりするけど。
0324デフォルトの名無しさん
2014/12/16(火) 07:17:44.76ID:wJ7EKTJK0325デフォルトの名無しさん
2014/12/16(火) 08:34:21.41ID:/QUlFENt0326デフォルトの名無しさん
2014/12/16(火) 09:41:52.02ID:Krms2blI0327デフォルトの名無しさん
2014/12/16(火) 09:48:27.19ID:A7eDA88p0328デフォルトの名無しさん
2014/12/16(火) 10:07:24.03ID:HCHWa5mJ0329デフォルトの名無しさん
2014/12/16(火) 10:35:45.33ID:SBqcW34N0330デフォルトの名無しさん
2014/12/16(火) 10:55:49.67ID:Krms2blIMVPVMとかも絡むか知らんがよくわからん
0331デフォルトの名無しさん
2014/12/16(火) 16:09:31.30ID:kBzfN2F4非同期呼び出しは、それがUI以外の処理ならモデル側が管理し
処理が終わればMのステートが変化し、変更通知でVMに反映される。
0332デフォルトの名無しさん
2014/12/16(火) 17:16:37.13ID:biu4+AO4大いにメリットも感じるが、ViewからViewModelのメソッド呼び出しをコマンドバインディングで行うのは、
「デザイナーとプログラマーは分業すべき」という思想が先行した強迫で、ファッションとしか思えない。
デザイナーとプログラマーの分業が実現しない場合、デザインとプログラミングを分離するための手段
としてコマンドやビヘイビアを使うべきという理由づけは説得力を失う。
0333デフォルトの名無しさん
2014/12/16(火) 17:24:34.91ID:k8JOEiMj0334デフォルトの名無しさん
2014/12/16(火) 17:36:07.43ID:2L6Xzq2mせめて>>322でやって
0335デフォルトの名無しさん 転載ダメ©2ch.net
2014/12/16(火) 17:50:41.73ID:ENYG0R12イベントに比べたら煩雑すぎる上に手段もばらばらで統一されてない
0336デフォルトの名無しさん
2014/12/16(火) 18:11:26.30ID:fh7PLindWindows8から提供されてんだから
0337デフォルトの名無しさん
2014/12/16(火) 18:30:19.68ID:k8JOEiMj0338デフォルトの名無しさん
2014/12/16(火) 19:02:00.72ID:Gue/OV69コマンドを使う理由なんてそれだけで十分じゃないか
難しく考えすぎ
ビヘイビア?
確かにBlendの生産性が低い現状ではゴミだね
0339デフォルトの名無しさん
2014/12/16(火) 19:40:51.70ID:SBqcW34N攻略本見ないとゲームもできないのか?
0340デフォルトの名無しさん
2014/12/16(火) 19:46:47.99ID:SBqcW34Nやれやれだぜ
0341デフォルトの名無しさん
2014/12/17(水) 20:37:30.76ID:SgFsfj0x0342デフォルトの名無しさん
2014/12/17(水) 22:07:59.44ID:dk9XguQxいやコンファームされた後モデルへのリクエスト応答を非同期で待ってその結果で処理分けしたいときあるやん。
0343デフォルトの名無しさん
2014/12/18(木) 00:16:57.94ID:R3kaQ+ldもし関係があるなら、一連の操作を全てモデル内で行うべきなんじゃないかなぁ
0344デフォルトの名無しさん
2014/12/18(木) 06:16:18.54ID:+iVo5G6Rログインしてその結果で成功ならログイン画面閉じて処理継続、失敗ならエラー内容出してログイン画面パスワードクリアして画面そのままって時は?
モデルから失敗のイベント受けてVMが制御するの?だったら今ログイン試行しているってコンテキスト欲しくね?フラグで管理しとくの?
0345デフォルトの名無しさん
2014/12/18(木) 07:07:54.05ID:EeLdekqG0346デフォルトの名無しさん
2014/12/18(木) 20:23:26.99ID:kRzNCkTy0347デフォルトの名無しさん
2014/12/22(月) 22:45:21.56ID:8Yk/rM5NObservable<A> Entities {get;set}のAがさらにB,Cなんかのインターフェースやクラスを持ってた場合のBindingってどうやるの?
Xamlはドット記法で候補が出ないからわかんないっすよ
0348デフォルトの名無しさん
2014/12/23(火) 01:23:52.27ID:EsIBaPiX0349デフォルトの名無しさん
2014/12/23(火) 02:50:59.27ID:XltHXZso0350デフォルトの名無しさん
2014/12/23(火) 08:38:24.40ID:3/UsXzqc0351デフォルトの名無しさん
2014/12/23(火) 12:46:39.31ID:ZBmkgZQY0352デフォルトの名無しさん
2014/12/23(火) 13:16:53.74ID:qeaTclNo0353デフォルトの名無しさん
2014/12/23(火) 13:22:50.22ID:IBdOOalD0354デフォルトの名無しさん
2014/12/23(火) 13:42:03.02ID:3/UsXzqc具体的に困っているシチュエーションがあるのならアドバイスするけど
0355デフォルトの名無しさん
2014/12/23(火) 14:05:15.99ID:EsIBaPiX未だにその辺クリアに説明してるの見たことない。
0356デフォルトの名無しさん
2014/12/23(火) 14:08:15.04ID:3/UsXzqc0357デフォルトの名無しさん
2014/12/23(火) 22:32:58.68ID:DxKCY5OG名前で引っ張ってるだけよ
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なんかオブジェクトでやろうと考えて色々実装を考えてみると
結局依存関係プロパティが一つの結論になる
0361デフォルトの名無しさん
2014/12/24(水) 09:47:14.72ID:mg0/3cDkなんで依存関係プロパティなんだ?バインディングソース側っつーかvmじゃん?
0362デフォルトの名無しさん
2014/12/24(水) 11:19:46.43ID:pRgHqn0Nことあるの?
0363デフォルトの名無しさん
2014/12/24(水) 11:58:50.16ID:o7RXIr7q0364デフォルトの名無しさん
2014/12/24(水) 12:33:04.26ID:ovcwIXh2ttp://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:pRgHqn0NWPFを勉強したら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:br1WxaSXJAVA(not Java)というアレから溢れ出るアレさが、お前はそれ以前だと語っている感じがする
0369デフォルトの名無しさん
2014/12/24(水) 19:47:38.09ID:pRgHqn0Nそうなるとモチベーションが上がらんだろ。
Javaならアンドロイドにも有効だし、将来性もありそうだし。
そもそもWPFって将来性はあるんかいな?
0370デフォルトの名無しさん
2014/12/24(水) 19:49:12.37ID:pRgHqn0N金もうけだろ。
0371デフォルトの名無しさん
2014/12/24(水) 20:34:47.27ID:iMQO8Wmu0372デフォルトの名無しさん
2014/12/24(水) 20:46:31.09ID:pRgHqn0Nやっぱり下火?
0373デフォルトの名無しさん
2014/12/24(水) 22:26:13.35ID:BS9YqGYcモダンの盛り上がりもビミョいからのぅ
0374デフォルトの名無しさん
2014/12/24(水) 22:44:47.64ID:MCikQ0Ol0375デフォルトの名無しさん
2014/12/24(水) 22:49:30.44ID:INDi/DcYそもそもWPFの何が難しいんだ、C#(.NET)わかってますとかいうやつにWPF触らせたら何もできないから丁度いいリトマスっつーかバカ発見器だよw
0376デフォルトの名無しさん
2014/12/24(水) 23:17:31.13ID:zO0QQ12cMSDNのドキュメント読めよ。
0377デフォルトの名無しさん
2014/12/24(水) 23:34:47.10ID:iMQO8Wmu甲乙つけがたいな・・・
0378デフォルトの名無しさん
2014/12/24(水) 23:57:18.29ID:QnfOZ+k00379デフォルトの名無しさん
2014/12/25(木) 00:24:33.31ID:UO+ZWjXJ.NET知ってたっていきなり0からWPF使えって投げられて即やれるかったら無理だろw
しかも宗教家の下に付いた日にゃぁ、なんぼ期間あっても足りんだろうな
0380デフォルトの名無しさん
2014/12/25(木) 00:36:41.62ID:x/eCloap宗教家って? 妙にこだわる人って意味か?
0381デフォルトの名無しさん
2014/12/25(木) 00:41:36.87ID:x/eCloapこのaはなんなの?
0382デフォルトの名無しさん
2014/12/25(木) 00:54:28.09ID:UO+ZWjXJ0383デフォルトの名無しさん
2014/12/25(木) 01:36:08.28ID:x/eCloap0384デフォルトの名無しさん
2014/12/25(木) 01:46:18.69ID:355eDjF6ア
オシエテクン
ウン
0385デフォルトの名無しさん
2014/12/25(木) 02:15:38.13ID:UO+ZWjXJXML、.NET これらを最低限理解してないと wpf は使えねーぞ
飛び級ってできんのや。それら理解するまで wpf やめたらいいぞ
ココ、理解してるヤツの前提のスレだから
0386デフォルトの名無しさん
2014/12/25(木) 07:59:29.95ID:x/eCloapまあまあそういわずに、どうせ暇でしょ。初心者の質問に対応するのは
良い頭の整理になる。本当に理解していれば、本質をズバッとついた回答が
できる。しかし大抵は理解度が低いので誤魔化す。
で、、、、ここでは名前空間ってのが本質? さすがだねー。本質をズバッと
ついてるよ。
>ココ、理解してるヤツの前提のスレだから
前提は理解したのでよろしく。
0387デフォルトの名無しさん
2014/12/25(木) 08:30:51.17ID:sOzYbLIDこいつに生まれるくらいならカメムシにでも生まれた方がマシだわ
0388デフォルトの名無しさん
2014/12/25(木) 08:36:18.60ID:UO+ZWjXJ0389デフォルトの名無しさん
2014/12/25(木) 21:08:51.27ID:gYRfctsfデモを触ってみると用途が重複している部分ではComponentOneより良さそうななんだけど
国内サポートが無いので躊躇してる
0390デフォルトの名無しさん
2014/12/26(金) 07:33:49.17ID:rhc+XonX{
カスコンテンツ = 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+F0392デフォルトの名無しさん
2014/12/26(金) 08:00:14.49ID:vhHzgjpW0393デフォルトの名無しさん
2014/12/26(金) 08:29:33.24ID:rhc+XonX0394デフォルトの名無しさん
2014/12/26(金) 09:18:47.07ID:LhzZcfZx0395デフォルトの名無しさん
2014/12/26(金) 09:30:14.96ID:vVR74RNMDとC#どっちがいい?
0396デフォルトの名無しさん
2014/12/26(金) 09:42:14.45ID:LhzZcfZxスレ違い
0397デフォルトの名無しさん
2014/12/26(金) 13:01:32.46ID:rmOREM4Xお前はここにいてはいけない・・・
0398デフォルトの名無しさん
2014/12/26(金) 15:06:19.06ID:a247+u5B0399デフォルトの名無しさん
2014/12/26(金) 15:12:06.15ID:/xVoNWdv0400デフォルトの名無しさん
2014/12/26(金) 21:03:01.05ID:qZjv5zrw0401デフォルトの名無しさん
2014/12/28(日) 12:26:39.40ID:s1nUKoE90402デフォルトの名無しさん
2014/12/28(日) 13:09:24.99ID:1AHF9F74WPFに習熟していれば、だけど
0403デフォルトの名無しさん
2014/12/28(日) 13:27:15.57ID:CCjMPNXVちなみに何と比較してる?
iOSとか泥のデザイナー的なのはWPFよりマシな仕組みあるのかしら(´・_・`)
0404デフォルトの名無しさん
2014/12/28(日) 13:35:59.76ID:1AHF9F74Androidは2,3回触ったけど物凄く筋が悪いバッドノウハウの塊に見えた
0405デフォルトの名無しさん
2014/12/28(日) 13:37:37.90ID:6jddN626バッドノウハウだらけだと萎える
0406デフォルトの名無しさん
2014/12/28(日) 14:01:03.93ID:0mcuX8gP一時的に優れたUIのシステムが作られ
より愚かなユーザーにまで使われるようになり
より多くのUIの不備不足に悩まされることになり
事態は悪化する
0407デフォルトの名無しさん
2014/12/28(日) 14:02:41.83ID:6jddN6260408デフォルトの名無しさん
2014/12/29(月) 01:27:23.41ID:b0VtAuxfバットノウハウが無いともっさりだけど、
バットノウハウが有れば爆速になる
0409デフォルトの名無しさん
2014/12/29(月) 02:25:09.20ID:LpicdqcR0410デフォルトの名無しさん
2014/12/29(月) 10:55:03.26ID:QYeytr0Gそれだとどんなプログミング言語でもバッドノウハウの塊になるぞ
0411デフォルトの名無しさん
2014/12/29(月) 11:00:37.71ID:QPHjbNztパフォーマンス関係は普通の軽量化がほとんど
0412デフォルトの名無しさん
2014/12/29(月) 14:35:02.51ID:al+8r1vLWPFなんてどう作ったって速さなんてかわんねーよ
そら罫線引くのにUIElementインスタンスを1000個生成するよりDrawingVisualやDrawingGeometryのが速いが
それは手法の問題であってんなのWindows Formsでも一緒だろーが
0413デフォルトの名無しさん
2014/12/29(月) 14:47:01.21ID:XkeH/xSK0414デフォルトの名無しさん
2014/12/29(月) 20:25:32.76ID:CdSnLCLc頭悪いバカは黙ってればいいのに(´・_・`)
0415デフォルトの名無しさん
2014/12/29(月) 23:43:47.67ID:CO7+HcuLそういう時は頭のいい発言をして黙らせるのが効果的。
0416デフォルトの名無しさん
2014/12/30(火) 01:42:35.49ID:pzzlFLkT書いてないのバレバレ、もっと具体的に反論しないと反証になんねーんだけどwww
0417デフォルトの名無しさん
2014/12/30(火) 02:15:09.85ID:4oGPFvlj0418デフォルトの名無しさん
2014/12/30(火) 04:33:51.73ID:g95KtWi90419デフォルトの名無しさん
2014/12/30(火) 05:38:43.29ID:VqTIlXBT0420デフォルトの名無しさん
2014/12/30(火) 07:43:32.74ID:4oGPFvlj0421デフォルトの名無しさん
2014/12/30(火) 08:55:53.44ID:JWtJz6A10422デフォルトの名無しさん
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その問題はバックグラウンドスレッドから通知するときに低優先度のDispatcherPriorityを使うことで対処してるな
ただ、通知が同時でも何故かバインディングの数だけ再レイアウトされることがある
色々なコンポーネントがLayoutUpdatedイベントを使って処理を遅延させてまとめようとしてるんだけど、
LayoutUpdatedイベント同士には優先順位が無いので
上手くまとめられなくて発生するみたい
0426デフォルトの名無しさん
2014/12/30(火) 15:35:49.14ID:UB18iU9+Rx使えばいいやん
0427デフォルトの名無しさん
2014/12/30(火) 15:53:03.36ID:9D3eL6UJRxは面白いがasync,await,yieldみたいなコンパイラのサポートが無いのが残念だな
F#の計算式ならRxをシームレスに扱えるけど、
C#と混在させるのは面倒だし
0428デフォルトの名無しさん
2014/12/30(火) 17:08:14.35ID:4oGPFvlj0429デフォルトの名無しさん
2014/12/30(火) 18:47:17.05ID:UB18iU9+わざわざRx使うまでもないけれどスレッド優先順位でゴニョゴニョするぐらいならスロットル的なのRxでも自前でもいいから使ったほうが良くないか?
0430デフォルトの名無しさん
2014/12/31(水) 00:35:38.42ID:TkAl0U7xスロットルと優先度はどちらか一方を選ぶというものではないと思う
例えば、RxならObservable.ThrottleのthrottleDurationSelectorパラメータに
低いDispatcherPriorityで実行可能になるまで待機するようなものを指定することだってできるんだし
優先度はThrottle的な事をしつつ、限界までレスポンスを向上させるために使う
実装はもちろんRxでもいいんだけど、これだけのためにRxを使うのはちょっと大げさかなぁと
Throttle的なイベントが1つあれば事足りるわけだしね
0431デフォルトの名無しさん
2014/12/31(水) 00:40:31.65ID:jis/vh+Rんーいや上の例題だと優先度でレスポンスよくするよりは間引く的な動作をさせた方がいいかと思って。
まぁ要件に従い適材適所でって事で(´・_・`)
0432デフォルトの名無しさん
2014/12/31(水) 11:00:23.22ID:w/lvmsOCユーザーコントロールを表示させる事や、単純なテキストだけのリストビューの表示は出来たのですが。
入門に使えるサイト、本がありましたら教えて頂けますでしょうか
0433デフォルトの名無しさん
2014/12/31(水) 11:12:31.39ID:EgsEk8JHサイトも本も、まったく全然これっぽっちも分からんけどね
やりたいのはこういうこと?
http://www.dotup.org/uploda/www.dotup.org82135.7z.html
0434デフォルトの名無しさん
2014/12/31(水) 11:24:07.90ID:w/lvmsOCあ、はい、これです。
すいません、ありがとうございます
0435デフォルトの名無しさん
2015/01/01(木) 03:16:12.97ID:g9LwWX3sバッドノウハウで儲けるのが情報産業の常道だから、バッドノウハウの対策
としてグッドラッパーが登場すると、それを取り込んでバッドノウハウで
グレードアップする。WPFは改善されたのだが、それ以上にバッドノウハウを
追加している。
0437デフォルトの名無しさん
2015/01/01(木) 07:40:41.98ID:aZRx2Zh30438デフォルトの名無しさん
2015/01/01(木) 09:54:48.59ID:2oZHmgl+酔ってるか寝ぼけてるかはほぼ間違いない
0439デフォルトの名無しさん
2015/01/01(木) 10:23:39.73ID:zux1GyX30440デフォルトの名無しさん
2015/01/01(木) 23:09:40.33ID:vFjZpsL0編集画面を開くのに時間がかかってしまいます。裏で予めUI部分を作っておきたいのですが、
そういうことはできないでしょうか?
Visibility を Collapsed にしておいて、アイテムが選択されたら Visible に変更する、という方法を
試してみたのですが、Visible になった時点でUIが作成されるみたいで時間は変わりませんでした。
0441デフォルトの名無しさん
2015/01/01(木) 23:46:29.24ID:ySAWNeQ90442デフォルトの名無しさん
2015/01/02(金) 01:09:08.99ID:M6FniQYSありがとうございます。
やってみます!
0443デフォルトの名無しさん
2015/01/03(土) 18:44:36.26ID:2QXnNUsrhttp://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:GUjuaN7q0446デフォルトの名無しさん
2015/01/05(月) 13:20:29.80ID:FjQWap8TExpress版をストアアプリ専用にしようとしてたよね
今思えば血迷ってたねw
0447デフォルトの名無しさん
2015/01/05(月) 14:20:45.54ID:GPpLBZZj0448デフォルトの名無しさん
2015/01/05(月) 19:58:55.15ID:O5Cj2lUa0449デフォルトの名無しさん
2015/01/05(月) 20:04:13.75ID:Y6BCcXgq0450デフォルトの名無しさん
2015/01/05(月) 20:36:51.02ID:R0f2W+7v速度アップ?
0451デフォルトの名無しさん
2015/01/05(月) 20:50:09.54ID:O5Cj2lUa0452デフォルトの名無しさん
2015/01/05(月) 21:51:52.04ID:v8mxPw7dちゃんと反省したTreeView
0453デフォルトの名無しさん
2015/01/05(月) 22:23:28.17ID:5xT9f16I0454デフォルトの名無しさん
2015/01/05(月) 22:45:17.93ID:Y6BCcXgq0455デフォルトの名無しさん
2015/01/06(火) 00:11:40.61ID:taY82kj20456デフォルトの名無しさん
2015/01/06(火) 10:07:31.50ID:lRJZAiuNそういや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+tFrEOffice2013みたいなテーマもあるし
0459デフォルトの名無しさん
2015/01/06(火) 18:04:19.19ID:fNWhMhIP僧衣?
0460デフォルトの名無しさん
2015/01/06(火) 20:07:06.65ID:Q7R46vB50461デフォルトの名無しさん
2015/01/06(火) 20:40:24.63ID:ypBuwdWQただ不満も確かにある
・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明るくて隣の駅から見えそうだ
0463デフォルトの名無しさん
2015/01/06(火) 21:32:01.91ID:thA/82xLだが、デフォルト状態ではパフォーマンスが低く、
WPFを深く理解しないと
どうやったらパフォーマンスを上げられるのかがさっぱりわからない
こういった、WPFの理解度が低いと低品質なアプリしか作れない事が難しいと言われる所以だよ
>>461の言葉を借りるならば
コントロール増加時のパフォーマンス低下の改善を求める>>461自身が
WPFを理解できない低能というわけだ
0464デフォルトの名無しさん
2015/01/06(火) 22:26:18.89ID:lRJZAiuN0465デフォルトの名無しさん
2015/01/07(水) 00:13:46.11ID:i3ohTgqrWPFを深く理解しないと
どうやったらパフォーマンスを上げられるのかがさっぱりわからない 」
これが最大の課題ではないのか
VBでクライアントアプリの覇権がとれたのは
深く理解しなくてもそこそこのものができたからでしょう
SQLWindowsとかDelphiは筋がよかったのに廃れちゃった。
0466デフォルトの名無しさん
2015/01/07(水) 00:26:59.46ID:HslK9MDQ大漁のコントロール出すんじゃなきゃ関係ねーよ。
その頃にはVBとか動かないがな
0467デフォルトの名無しさん
2015/01/07(水) 00:37:17.17ID:zci1JGelWPFの開発が始まった頃は
型でガチガチに固められた設計より、スクリプト言語の緩さの方が受けが良かったし、
性能やマルチスレッドの活用も軽視されていた
それが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ム板ってこういうカスばっかだよなw
証明しないと反証にならねーんだよ低能
何がWPFを深く理解しないとだ、アホ過ぎるw
一行もコード書けない低能が、悔しかったらコード見せてみろよw
0470デフォルトの名無しさん
2015/01/07(水) 07:22:59.70ID:AKPWQzMrよく頑張ったとも言える
0471デフォルトの名無しさん
2015/01/07(水) 09:00:01.87ID:oynp39RW0472デフォルトの名無しさん
2015/01/07(水) 16:55:51.79ID:zci1JGel普通にArrayListとか使われてるし
0473デフォルトの名無しさん
2015/01/07(水) 17:13:55.40ID:735nxo/y本格的に関わらなくてほんと良かった
0474デフォルトの名無しさん
2015/01/07(水) 20:49:50.26ID:oPGRKNaR0475デフォルトの名無しさん
2015/01/08(木) 09:06:25.59ID:KlgCqyJwArray<object>でもArrayListでもどっちでもいいがな
0476デフォルトの名無しさん
2015/01/09(金) 02:35:33.20ID:U0OXyKsdWPFのロードマップ。否定的意見が多いなー。
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ストレートにクソだって言うと10倍絡んでくる奴いるだろ
ご機嫌取りだと受け取ってくれ
0480デフォルトの名無しさん
2015/01/10(土) 10:55:36.34ID:sfQWSbPVOracleもWPF(WinFX)パクったJavaFX2が次世代UIアーキテクチャだし、拡張子がFXMLなのが爆笑だがw
WPFが普及しない問題はWindowsという下位互換性・過去の開発環境リソースを捨てられないMS故のジレンマなんだよな。
.NET 1.0のアセンブリが未だに実行可能って素晴らしいことではあるんだが、これじゃ既存の怠惰な開発者がWinForms捨ててWPFに移行してこないよなって感じ
0481デフォルトの名無しさん
2015/01/10(土) 11:16:26.20ID:4AfutbUM0482デフォルトの名無しさん
2015/01/10(土) 11:21:39.84ID:FSu0Qna55年前くらいから進化止まってるし、MSやる気無いだろ
0483デフォルトの名無しさん
2015/01/10(土) 11:28:54.22ID:D1+6ni17ただ機能てんこ盛りにすぎて設計がまとまってない
進化というより未だ進化の過程の中
0484デフォルトの名無しさん
2015/01/11(日) 00:43:30.96ID:SzgEAeJS0485デフォルトの名無しさん
2015/01/11(日) 01:21:30.87ID:aOUO6IlL俺の中ではAngularJSと同じポジション
0486デフォルトの名無しさん
2015/01/11(日) 01:29:47.45ID:zHJ0Pate0487デフォルトの名無しさん
2015/01/11(日) 10:50:20.83ID:SzgEAeJSちょっと複雑になるとwinforms
必要に駆られるとWPF
WPFはrichtextboxが使いにくいので書き捨てには向いてない
だからwinforms使う
0488デフォルトの名無しさん
2015/01/11(日) 11:04:08.03ID:aOUO6IlLまさにExcelerな感じがする
0489デフォルトの名無しさん
2015/01/11(日) 11:25:45.55ID:YzoMt1+V0490デフォルトの名無しさん
2015/01/11(日) 12:13:18.41ID:SzgEAeJS条件をテキストボックスに入れてパラメータ変えて結果をrichtextboxに出してる
0491デフォルトの名無しさん
2015/01/11(日) 12:22:09.29ID:aOUO6IlLそこはかとないrichさに心を奪われているのか?
0492デフォルトの名無しさん
2015/01/11(日) 12:31:00.96ID:7d9i2yoHそれを扱うRichTextBoxも腐ってる
SilverLightやWinRTにFlowDocument無いから、
互換性もとれないし
0493デフォルトの名無しさん
2015/01/11(日) 12:39:27.01ID:99JZuKGzあれはXML・JSON・テキストをWordのようにレイアウトしたりするためのコントロールであって
入力をリアルタイムに解析して動的にデザイン・レイアウトするためのコントロールじゃない
そもそもTextBoxとRichTextBoxは機能がぜんぜん違うんだがw
0494デフォルトの名無しさん
2015/01/11(日) 12:57:38.15ID:o357InHT使い物にならないのがWPF
0495デフォルトの名無しさん
2015/01/11(日) 13:48:45.15ID:RLN4iPFcRichTextBoxが糞なのは確かだな
ちょっと用途を外れたくらいで使い物にならないコントロールは
本来の用途でも少し規模が大きくなっただけで使いものにならなくなる
0496デフォルトの名無しさん
2015/01/11(日) 15:22:56.36ID:TrYFGUAy特定の値だけ赤字にしたりとかはどのコントロールで表現してんの?
0497デフォルトの名無しさん
2015/01/11(日) 15:34:12.62ID:aOUO6IlL0498デフォルトの名無しさん
2015/01/11(日) 15:49:31.28ID:TrYFGUAy完全勝利でいいな
0499デフォルトの名無しさん
2015/01/11(日) 15:55:17.13ID:aOUO6IlL書き捨てるならスクリプトかexcelとか言ってたよね?
と思ったら人違いだった
csvに吐いてkibanaで見ます
なんでわざわざログビューアを作る必要があるんだ
暇なのか?
0500デフォルトの名無しさん
2015/01/11(日) 15:59:04.08ID:TrYFGUAy意味わからん
0501デフォルトの名無しさん
2015/01/11(日) 16:00:39.24ID:99JZuKGzなんだ素人の教えてちゃんかw
0502デフォルトの名無しさん
2015/01/11(日) 16:01:53.44ID:TrYFGUAyまた逃げる人が増えます
0503デフォルトの名無しさん
2015/01/12(月) 03:07:03.97ID:Jo3DW4Xx0504デフォルトの名無しさん
2015/01/12(月) 09:35:39.41ID:kHSEMygN0505デフォルトの名無しさん
2015/01/12(月) 11:32:00.10ID:XVhhMCkWTeamFoundation.Controls.MVVM.ViewModelBaseだとVMの基本的な機能をFrameworkで提供してくれるからメンテしやすいし楽
本来これを最初から用意しておくべきだった
0506デフォルトの名無しさん
2015/01/12(月) 11:39:46.16ID:6Qdbqz7A0507デフォルトの名無しさん
2015/01/12(月) 12:18:21.02ID:ZY/pps/g0508デフォルトの名無しさん
2015/01/12(月) 12:29:18.51ID:XVhhMCkW少なくとも.NET標準であればvNextと違ってGACに依存するWPFでは楽だよね
0509デフォルトの名無しさん
2015/01/13(火) 20:45:17.64ID:ohVoNly6やっとvb.netでプロパティのデータバインディングができた
どいつもこいつも{binding X}でOKみたいなウソ書きやがって
間違ってはないんだが
どっかからコピーしたような小難しい言い回しのサイト多すぎ
簡単に説明してくれマジで
0510デフォルトの名無しさん
2015/01/13(火) 21:27:47.54ID:krNgkKs10511デフォルトの名無しさん
2015/01/13(火) 21:29:09.64ID:2vD2D5180512デフォルトの名無しさん
2015/01/13(火) 22:28:17.73ID:ohVoNly6会社では相談相手いないし
日本はまともな掲示板ないから質問もできないし
0513デフォルトの名無しさん
2015/01/13(火) 22:30:52.32ID:ohVoNly6XAMLの書き方も知りたいし
リストのバインドやコマンドも知りたい
格好いいデザインのテンプレートも使いたい
0514デフォルトの名無しさん
2015/01/13(火) 22:37:41.96ID:2vD2D518最近はStackOverflowの日本語サイトが稼働してる
0515デフォルトの名無しさん
2015/01/13(火) 23:29:43.47ID:krNgkKs1というか無理じゃねっていう。やってりゃ嫌でもその内少しずつ入ってくるぞ
0516デフォルトの名無しさん
2015/01/14(水) 00:13:48.21ID:626Lie0F賑わって無い気がする
日本のプログラマはお互いに人間不信になってる感じ
マ板みてれば解るけども
0517デフォルトの名無しさん
2015/01/14(水) 00:30:49.72ID:/i0oeU5w賑わってないとか言って様子見する奴が居るから寂れてるように見えるんやで
回答して信用度稼ぎたいプログラマは溢れてるんだから、とりあえず質問投げてみーや
0518デフォルトの名無しさん
2015/01/14(水) 01:22:45.81ID:0BUdKk4MそれよかXAMLのためのMVVM(MVPVM)なのに前提となるMVVMの約束が破綻してるんだよな
DataTemplateもSelectorもVがVMのインスタンス参照してるじゃんってね
そもそも画面遷移のためにPrismのMediator必要ってはぁ?って感じ
0519デフォルトの名無しさん
2015/01/14(水) 01:32:32.84ID:/i0oeU5wVMのインスタンス参照してなんか悪いことあるんか?
というかVMのインスタンス持たなかったらVとVMどうつなげるんだ
0520デフォルトの名無しさん
2015/01/14(水) 08:02:02.14ID:0jHyb9lO大半は必要だと思いこんでるだけです
ほんとうにひつようならMSがどれだけばかでもPrismをPresentationFrameworkにふくめるでしょ
0521デフォルトの名無しさん
2015/01/14(水) 09:17:58.22ID:r9rByxGG0522デフォルトの名無しさん
2015/01/14(水) 10:03:52.36ID:1jdWS2PW0523デフォルトの名無しさん
2015/01/14(水) 18:59:22.24ID:626Lie0Fもっとシンプルに実装しないんだろうな
理解に苦しむよ
0524デフォルトの名無しさん
2015/01/14(水) 20:00:34.53ID:mIJOHu8KCanExecuteを削るっての以外で
0525デフォルトの名無しさん
2015/01/14(水) 21:11:11.21ID:qRMiZ9TC行の色変えごときでいちいちコードビハインド書かせられたら白けるわ
つか.net自体に拡張プロパティが欲しい
0526デフォルトの名無しさん
2015/01/14(水) 21:33:00.50ID:mIJOHu8K0527デフォルトの名無しさん
2015/01/14(水) 21:44:58.92ID:CF3pYICGググったらそれが出てくると思うんだけどね
コードビハインドでやってるとか珍しい
0528デフォルトの名無しさん
2015/01/14(水) 21:55:46.44ID:PcEMyRkAWPFで三次元座標データを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ありがとう
0530デフォルトの名無しさん
2015/01/14(水) 23:37:49.76ID:r9rByxGGここは広義で紙芝居アプリ屋とでもいうのか、そんなんしか
いやまぁ、そういうフレームワークだとは思うんだけどw
0531デフォルトの名無しさん
2015/01/14(水) 23:54:02.79ID:FGiWDhRr0532デフォルトの名無しさん
2015/01/15(木) 08:50:30.95ID:nnRqO7o5>>531
ありがとうございます。
立ち止まっては時間がもったいないので、
SharpDXで再度実装を行ってみます。
OpenGLは使えるのですが、いまだにDirectXは手つかずの状態でしたので
DirectXは避けていました。
0533デフォルトの名無しさん
2015/01/15(木) 08:51:10.28ID:4kO6gtvKWPFの描画システム的にピクセル単位のリアルタイム描画は向いてないので無茶
DirectXを直接Hostするか、DirectXラッパーライブラリ系をNugetあたりで落としてきて使うか、
あたりが現実的なラインじゃないかな
0534デフォルトの名無しさん
2015/01/15(木) 09:24:01.07ID:nnRqO7o5レスありがとうございます。
そこまできっぱり言っていただけると、あきらめがつきます。
確実なAPIがそろっているSharpDXへと移行していこうと思います。
グラフィック関連含めてMicrosoftで完結できる日がいつ来るのでしょうかね・・・。
ありがとうございました。
0535デフォルトの名無しさん
2015/01/15(木) 15:16:14.56ID:Wq+B737k0536デフォルトの名無しさん
2015/01/15(木) 15:34:01.30ID:z04OcHIEttp://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:LzgaFU6f0539デフォルトの名無しさん
2015/01/15(木) 16:12:46.45ID:z04OcHIEXAMLはUIデザインを表現するパーツであり、プログラミングするパーツじゃないんだがなー
0540デフォルトの名無しさん
2015/01/15(木) 16:28:01.17ID:CAoWjNKx0541デフォルトの名無しさん
2015/01/15(木) 17:53:39.87ID:eVu0SbiK0542デフォルトの名無しさん
2015/01/15(木) 19:49:08.58ID:DEgz/ZDgさすがにこの程度のこともできないとゴミだなとはMSも理解してる。
あとはさっさとSystem.Windowsの下のあれと置き換えてくれればね…。
0543デフォルトの名無しさん
2015/01/15(木) 21:14:45.91ID:hLpbiH2N自動実装プロパティ内にデータの通知を
する場合は展開してsetに通知を書くけど
その時のvalueは別途プライベート変数
用意して記憶するのが正しいの?
折角の自動実装プロパティなのに
もったいなくね?
0544デフォルトの名無しさん
2015/01/15(木) 21:22:54.46ID:hLpbiH2N色変えるとかは確かにビューで完結して欲しい
xaml内にスクリプトかけないのかな?
0545デフォルトの名無しさん
2015/01/15(木) 21:32:08.00ID:r4XhfXoN0546デフォルトの名無しさん
2015/01/15(木) 21:33:33.33ID:yTCJBhR9ヘジの信者以外は誰もが同意するところだ
0547デフォルトの名無しさん
2015/01/15(木) 21:47:11.31ID:yTCJBhR90548デフォルトの名無しさん
2015/01/15(木) 22:31:17.37ID:r4XhfXoN0549デフォルトの名無しさん
2015/01/15(木) 23:09:32.72ID:hLpbiH2Nxamlで完結したい
0550デフォルトの名無しさん
2015/01/15(木) 23:31:49.63ID:4kO6gtvK標準XAMLのみで完結は無茶。カスタムコントロールの作成も出来んだろそれ。
標準のXAMLで書けるコントロールと同列のパーツを作成して、XAMLで完結させるのは十分理に叶っている。
0551デフォルトの名無しさん
2015/01/15(木) 23:41:27.60ID:r4XhfXoN0552デフォルトの名無しさん
2015/01/16(金) 01:17:39.34ID:3ZAIwdSl一通りコンバータを用意して欲しい気がする
結局UIデザイナはただの絵描きになるわけではないか
0553デフォルトの名無しさん
2015/01/16(金) 03:38:28.16ID:5GEh+69nBlendを統合しろ無能
BlendのInteractionsも標準に含めろ無能
0554デフォルトの名無しさん
2015/01/16(金) 03:39:41.87ID:5GEh+69n0555デフォルトの名無しさん
2015/01/16(金) 11:52:22.49ID:+oYcDVvzそれをライブラリ化するだけで一通り必要なものは揃うはずなのに
0556デフォルトの名無しさん
2015/01/16(金) 11:57:29.68ID:IvlGFMzzとりあえず全部入れちゃえばいいのにな
しょーもないのを書くのがめんどくせぇんだから
0557デフォルトの名無しさん
2015/01/16(金) 18:03:18.17ID:tG7GHe8y0558デフォルトの名無しさん
2015/01/16(金) 18:55:53.76ID:3ZAIwdSldatacontextにバインドするプロパティ&コマンドのクラスは
独立したcsやvbに作成してnewの中でバインドするのが正しいの?
XAMLにwindow.resourceと追加したのだけど
バインドされませんでした
0559デフォルトの名無しさん
2015/01/16(金) 19:00:11.21ID:Q4T15R18ここ1年触ってないけど暇ができたからまたちょっとやってみるかな。
0560デフォルトの名無しさん
2015/01/16(金) 21:06:20.84ID:38rhz1UE差し支えなければ
いつ始まっていたのか教えていただけますか?
0561デフォルトの名無しさん
2015/01/16(金) 21:43:23.08ID:JyE/8mAy0562デフォルトの名無しさん
2015/01/16(金) 22:26:03.80ID:49OvZmoVいくらVSが唯だからって、これないと片手落ちじゃね?
0563デフォルトの名無しさん
2015/01/16(金) 22:30:10.14ID:byha8ECZhttp://www.microsoft.com/expression/jpn/
VSにさっさと統合しないからこの辺の知名度も上がらないんだと思うの
馬鹿なの?
0564デフォルトの名無しさん
2015/01/16(金) 23:03:49.45ID:xAu7dcLyResourceに追加したからってDataContextに代入されるわけではない
<Window.DataContext>
<local:XXXViewModel/>
</Window.DataContext>
とかすればXAMLで書けるが
0565デフォルトの名無しさん
2015/01/16(金) 23:04:06.92ID:49OvZmoV0566デフォルトの名無しさん
2015/01/16(金) 23:09:21.03ID:49OvZmoV無料版がある!!と思ったら
「新しいバージョンは開発されていません」
マジかよ。どうすんのよ。
てかどうなんのよWPF。Microsoftはいったい何をしたいの?
0567デフォルトの名無しさん
2015/01/16(金) 23:11:36.57ID:hUUDu3AxVS2012以降はPro以上のVSに付属するようになった。
VS2013Proは実質無料化。
つまりそういうことでしょ。
0568デフォルトの名無しさん
2015/01/16(金) 23:16:09.22ID:H5Oavj5uCommunityに付いてるぞ
0569デフォルトの名無しさん
2015/01/16(金) 23:21:42.93ID:3ZAIwdSlなるほど。頭いいなー
0570デフォルトの名無しさん
2015/01/16(金) 23:24:42.63ID:3ZAIwdSlビューにバインドできるクラスは
一つだけなのですか?
0571デフォルトの名無しさん
2015/01/16(金) 23:32:33.14ID:xAu7dcLyもうちょっと基本的な事は調べれ
ググれで全部済む
0572デフォルトの名無しさん
2015/01/19(月) 21:44:34.47ID:28kynkSgやはり情報少ないな
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/+5w0576デフォルトの名無しさん
2015/01/20(火) 22:01:31.55ID:Zs19/+g8覚えても数年後に消滅してそうな技術なのが怖くて仕方ない
0577デフォルトの名無しさん
2015/01/20(火) 22:26:49.57ID:JNlE/+5w10年持ったとも言えるのよ
0578デフォルトの名無しさん
2015/01/21(水) 10:20:56.76ID:9386VdZE> 覚えても数年後に消滅してそうな技術なのが怖くて仕方ない
MFCも以前はバリバリ使ってたけど、廃れたら廃れたで全然問題ないよ。
新しいものを覚えていけばいいだけ。
0579デフォルトの名無しさん
2015/01/21(水) 13:50:45.24ID:W+aNuk6y無駄遣いは避けたい
0580デフォルトの名無しさん
2015/01/21(水) 14:00:02.83ID:OU53EoFBそうなったら、WPFは完全に要らない子になる
0581デフォルトの名無しさん
2015/01/21(水) 14:23:19.84ID:qABZ5Od30582デフォルトの名無しさん
2015/01/21(水) 15:24:22.93ID:9386VdZE0583デフォルトの名無しさん
2015/01/21(水) 17:54:56.90ID:xCJbmfQDwinRT機が売れなくなるからでは?
もうやめたんだよね?製造は?
0584デフォルトの名無しさん
2015/01/21(水) 18:03:39.83ID:uKrh193Eそれは絶対ないってこのスレだけで3回は書いてる件。
っていうかこういうこと言ってる人ってストアアプリについてちょっとでもかじったことあるのかw
0585デフォルトの名無しさん
2015/01/21(水) 18:27:33.40ID:/GVHrWgaデスクトップアプリケーションが要らなくなる未来は現状見えてもいない
0586デフォルトの名無しさん
2015/01/21(水) 18:48:50.89ID:Gey3aM38silverlightでも同じセリフを聞いたことがあるなぁ
今silverlightはどうなったんだっけ?
0587デフォルトの名無しさん
2015/01/21(水) 21:34:03.18ID:nBliafqs0588デフォルトの名無しさん
2015/01/21(水) 23:27:24.40ID:tW49gJrA0589デフォルトの名無しさん
2015/01/22(木) 01:24:20.98ID:QykybOgSwpfってストアアプリ専用じゃないぞ
0590デフォルトの名無しさん
2015/01/22(木) 17:31:17.62ID:QMFULg7+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+> つーかDataSetなんて旧世代の遺物を
C#もWPFもC1FlexGridも使うの初めてだから、普通どうやるのか良くわかってないんです。
0593デフォルトの名無しさん
2015/01/22(木) 18:27:50.43ID:QMFULg7+0594デフォルトの名無しさん
2015/01/22(木) 19:16:00.78ID:cpxM7heMドメインモデルのコレクション(ObservableCollection)を生成
それをビューとバインドという流れになるかな
0595デフォルトの名無しさん
2015/01/22(木) 19:40:56.96ID:G5fG+bs3初心者には辛いだろうが
0596デフォルトの名無しさん
2015/01/22(木) 21:52:18.32ID:hxMZ7Cztちゃんとその時期の使うべきものをまとめて勉強できるサイトがあればいいけど
昔の情報ばかりに突き当たる
0597デフォルトの名無しさん
2015/01/22(木) 22:32:52.50ID:TqsVCR2I1.SQLserver専用の、テーブルと1対1なアダプタ経由のカスタムdataset
2.odp.netのような、SQL文字列投げてdatasetでうけるだけ
3.データベースとは直接やりとりせず、json。
4.splite-netのように、テーブルに対応するクラス作って、それのコレクションでうけたりする方式
ストアアプリだとdataset使えないから、下2つしか選択肢ないけど、、、
0598デフォルトの名無しさん
2015/01/22(木) 22:51:34.95ID:ir5gsVSI0599デフォルトの名無しさん
2015/01/22(木) 22:51:39.30ID:G5fG+bs33はDBの話じゃないし4でEF Code FirstやLINQ to SQLが出てこないのも意味不明
あとEDMの存在が忘れられてる
0600デフォルトの名無しさん
2015/01/23(金) 00:21:12.69ID:dpb0ZGXS出てこないのは理解できてないからに決まってるじゃないですか
ありがとう
0601590
2015/01/23(金) 10:14:56.90ID:xwefCwREちょっとだけググってみたところ、ObservableCollectionを使うのが良さそうで、もう少し調べてみます。
ICustomTypeDescriptorについても調べてみます。
最初にDBアクセス方式を調べたとき、EntityFrameworkがデファクトなのかなと思ったんですが、
なんだかここ数年でも仕様が迷走してるみたいだったのと、初心者にはちょっと辛いかなと敬遠してしまいましが。
0602デフォルトの名無しさん
2015/01/23(金) 10:22:08.61ID:CREeWvq6wpf 全然関係ねーけど
0603デフォルトの名無しさん
2015/01/23(金) 10:28:54.06ID:QQiBYRAPDBの知識がしっかり付いてないと使いこなすのは難しいよ
0604デフォルトの名無しさん
2015/01/23(金) 11:56:38.98ID:pWsgLYnB0605デフォルトの名無しさん
2015/01/23(金) 20:27:02.31ID:I6P7bznI0606デフォルトの名無しさん
2015/01/24(土) 15:02:10.42ID:d5sOd2yHDevelopersGuidoは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:d5sOd2yHPythonはそこまで好きじゃないんだがなあ
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普通にあるやん
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助かったわ
DevelopersGuideのメニューの一番下にあんのね
チュートリアルのセクションに置くようなものじゃねえと思うけど
0611デフォルトの名無しさん
2015/01/25(日) 18:25:35.02ID:pZk0xiV3https://msdn.microsoft.com/ja-jp/library/microsoft.teamfoundation.mvvm.windowviewmodel%28v=vs.110%29.aspx
0612デフォルトの名無しさん
2015/01/28(水) 15:36:53.53ID:GIALCG5Uソリューション内に複数のプロジェクトがあって、
プロジェクト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ビルド時にエラーが出る。
それだけではなく、もう一つ
「不明なビルド エラー '見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。 (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ありがとう。
結局ご指摘どおりだった。
dllのx86, x64の切り替えるタイミングがごちゃごちゃしてたから
一旦クリーンしてリビルドしてたらエラーが消えて、結果的にビルドが通った。
ありがとう。仕事じゃなかったらWPFやめたい。
0617デフォルトの名無しさん
2015/01/28(水) 18:05:50.27ID:fHTEL2vB0618デフォルトの名無しさん
2015/01/28(水) 18:58:44.52ID:XqsUekt20619デフォルトの名無しさん
2015/01/29(木) 01:41:02.49ID:+Xc3eIm3重すぎてエントリ系には使えない。
dapperとか計量マッパーにしとけ。
ただしEF+LINQで開発生産性は最強だがなw
0620デフォルトの名無しさん
2015/01/30(金) 23:52:21.75ID:pPL11rel「WPF ListBox 幅」とかで検索してもHorizontalContentAlignmentをStrechにするみたいなのばかりヒットして求める情報が手に入らない
0621デフォルトの名無しさん
2015/01/30(金) 23:56:39.60ID:m8RXaqStできる
何をしたいのかは分からんが、したい事を書いたほうが建設的だぞ
0622デフォルトの名無しさん
2015/01/30(金) 23:58:37.06ID:pPL11rel幅が狭い順にソートしたい
0623デフォルトの名無しさん
2015/01/31(土) 00:55:19.29ID:L7qxdE+Fあくまで手段の一つだが、SizeChangedをトリガーにActualWidthあたりを見ればItemの幅が取れる
Binding出来るようなBehavior書くなりすると汎用的だろうが、
とりあえずでやるならコードビハインドに書けばいいんじゃね
0624デフォルトの名無しさん
2015/01/31(土) 01:44:59.62ID:hlfqliWBソートするには全部の幅がどうなるかを取得しなきゃいけないからこの方法じゃダメそう
0625デフォルトの名無しさん
2015/01/31(土) 10:05:54.55ID:L7qxdE+Fあるいは幅自体をVM側で値として保持するとか。要件知らんからアレだけど。
0626デフォルトの名無しさん
2015/01/31(土) 10:41:16.68ID:tErVnSOhそもそもソートってどうやるんだっけ?
ObservableColの中身をソートして追加し直し?
0627デフォルトの名無しさん
2015/01/31(土) 11:09:14.75ID:Zp0atq7E0628デフォルトの名無しさん
2015/01/31(土) 11:10:37.42ID:29y+W13dさすがに「ランダムです」ってことはねえだろ
それをCollectionViewSourceでソートしたらええんちゃうの
0629デフォルトの名無しさん
2015/01/31(土) 11:14:31.44ID:tErVnSOhモデルのプロパティから表示の高さが計算できるならな。
フォントの大きさが混在するラップするテキストとかだったらどうやって計算するつもりなんだ?
0630デフォルトの名無しさん
2015/01/31(土) 15:42:50.27ID:qtZe2a48text.Width
これでソートしてやればいいやろ
0631デフォルトの名無しさん
2015/01/31(土) 15:43:51.55ID:29y+W13dお前は質問者の要件しらねえだろ
0632デフォルトの名無しさん
2015/01/31(土) 15:55:44.25ID:hlfqliWBすげえ完璧だわ
0633デフォルトの名無しさん
2015/01/31(土) 18:14:54.23ID:8yD/Dcpa0634デフォルトの名無しさん
2015/01/31(土) 18:25:07.22ID:EaH0DvWu0635デフォルトの名無しさん
2015/02/01(日) 10:22:17.99ID:ymu35Jul0636デフォルトの名無しさん
2015/02/01(日) 12:42:46.04ID:K9d0TBOk0637デフォルトの名無しさん
2015/02/01(日) 13:01:37.12ID:ymu35Julでないと>>628みたいな要らん推測で答える必要が出てくる
0638デフォルトの名無しさん
2015/02/02(月) 00:49:31.87ID:oCKieM5N複数の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そらどうにでもなるし、どうでも作れるのは知っとるよ
実際どうやってるのかの事例聞きたくてさ
1:1:1にすると綺麗な設計にならない事は知ってるし、その辺の基礎はわかってるつもり
だから、モデルの最上部(ViewModelと直接接する部分)の話、誰か良さそうな事例知ってないかなと
0641デフォルトの名無しさん
2015/02/02(月) 02:43:23.58ID:57NtitWJ一旦、フォントの設定を書き換えたらきちんとバインドした値が入るんだけど、フォントがデフォルトのままだとバインドしてる値がnullとか0のままになってしまう
もちろん元のTextBoxのFontFamilyはMeiryo UIを示してる
これをきっちりバインドさせるにはどうしたら良いだろうか
0642デフォルトの名無しさん
2015/02/02(月) 02:47:54.60ID:oCKieM5N1. BindingがTwoWayになってるかの確認
2. VM側でMeiryo UI指定する
0643デフォルトの名無しさん
2015/02/02(月) 02:52:33.48ID:57NtitWJ確かにVM側で指定したら解決するとは思うけどMeiryo UIが入ってないVistaでは正常に動作しなそうだからView側から値を渡したい
0644デフォルトの名無しさん
2015/02/02(月) 10:02:39.23ID:1LhX7F9aそこらへんになったらMVCとかでも使われるようなモデル部とビューなど部の分離の話何じゃねーの。MVVMに限らずアーキテクチャーパターンとして転がってない?
昔ながらのMVCとかはワード的ないかにもモデルってモノを想定してるか風だけど実際はそんな場合もあれば、サーバーと通信するのを含むクライアント側サービス群としてドメインモデル部が構成されていてVMがそれとやり取りする、またはその折衷など。
自分が今やってるMVVMのスマホ案件では後者。
0645デフォルトの名無しさん
2015/02/02(月) 10:35:23.44ID:ADaHz0nv> 1:1:1にすると綺麗な設計にならない事は知ってるし、その辺の基礎はわかってるつもり
>>638
>あれって、V-VM-Mを1:1:1とかにすると難しいと思うんだけど、
>Model層の最上部はシングルトンで管理とかしてるわけ?
こんな疑問抱く奴が基礎がわかってるとは思えない。
0646デフォルトの名無しさん
2015/02/02(月) 12:53:05.69ID:oCKieM5NMVVMってModel部分が表示に使われるマスターデータ保持する必要あるはずで、
いわゆるサービスだけで構成するのは無理でない? と思って。
VMが直にサービスとやりとりすると、UIの変更が呼び出し含むロジック部分まで足出ちゃう気がする
0647デフォルトの名無しさん
2015/02/02(月) 13:03:04.39ID:hdSLB4+TMVVMはアプリケーションアーキテクチャなんだから、P層とD層が分離されてりゃいいわけだし
みんな一回PoEAA読んでみるといいよ
0648デフォルトの名無しさん
2015/02/02(月) 13:07:40.78ID:oCKieM5Nそりゃそうなんだけど、
実際綺麗に作ろうとする時にどうやってる? 的な事を聞きたくてさ
職場の限られた知見だけだと洗練されなくてつらい
0649デフォルトの名無しさん
2015/02/02(月) 13:55:32.75ID:1LhX7F9a取引データを表示するような画面があったとして、モデル部の方は
・VMからの要求によってその時点での内容をサーバーに要求してそれを返すだけのリクエスタ
・サーバーとコネクションを貼りながらリアルタイムにそのユーザーの取引内容を取得しておき、VMから要求したときには今持ってる内容から要求に合わせてフィルタしたものなどを返す取引データマネージャー君
とかいくらでも要件に合わせて作りようがあるわけで、お前がサービスと言ってるものが何か知らんけど頭を柔らかくして理想的にあるべきシステムは何かを考えてったら自ずとどういう構成がいいか見えてくるんでは(´・_・`)
0650デフォルトの名無しさん
2015/02/02(月) 14:06:30.51ID:oCKieM5Nやりたい事はその例で言えば後者の「サーバーと(中略)マネージャ君」が近いけど、
その時にModel部のインスタンシングのタイミングを含めた所をどうやってるか聞きたいだけで、
要件によって良い構成が違うのは当たり前じゃない
ああ、こういう場合ならどうするって言い方すりゃいいのかな?
リアルタイムに株価を表示して注文したりするシステムを作るとして、
顧客の要求が画面レベルではコロコロ変わることが想定されていて、
コアとなるアプリケーションの振る舞い(Model層以遠)と
View(とViewModel)を厳密に分離したい。
この時、ViewModelが監視する対象とするModel層に属するクラスのインスタンスを
どうやって管理する? あるいはしてる?
っていう事を聞きたかった
0651デフォルトの名無しさん
2015/02/02(月) 14:46:00.95ID:ADaHz0nv> この時、ViewModelが監視する対象とするModel層に属するクラスのインスタンスを
> どうやって管理する? あるいはしてる?
> っていう事を聞きたかった
何言ってるんだか全然わからんわ。
0652デフォルトの名無しさん
2015/02/02(月) 22:30:47.39ID:iVt62pZQもう少し聞きたいことを最初から明確にしないと誰も答えられんよ。
モデルとビューをどう分けるかって話じゃなくてMVVMでやった時にModelをどのタイミングで消せばいいのかインスタンス管理のいい方法を知りたいってことでいいのかね?
であればMVVMで1-1-1になってるとして、削除の基準がVからかMからかで違うと思うが削除すべき時に死ねばいいんじゃないの?
Mを管理してるくんがいるならそれに俺は死にますと言って管理から外してもらって死ねばいいだけだし。
ただその株のデータ表示なら株データ管理くんがいるとしてVMが直結すればいいだけと思うが。Mで抽象化なり整理する必要あるの?
0653デフォルトの名無しさん
2015/02/03(火) 17:47:03.80ID:vk5X3HbwMVVMのModelにまつわる誤解
http://ugaya40.hateblo.jp/entry/model-mistake
0654デフォルトの名無しさん
2015/02/03(火) 18:43:29.57ID:TZB29Y9vてか生きてたのか
0655デフォルトの名無しさん
2015/02/03(火) 22:32:46.95ID:aCjPoInO複数のVMから見られるとか、ファットになりすぎたので纏めるとかではするけれど。
原理主義になることなく必要な範囲で適切に分離すればいいだけ。
0656デフォルトの名無しさん
2015/02/03(火) 22:58:19.57ID:PgCJl36yVM二層に分けてるだけなんじゃないのかな
0657デフォルトの名無しさん
2015/02/03(火) 23:46:22.23ID:X/p19c8g0658デフォルトの名無しさん
2015/02/04(水) 06:22:40.67ID:opCAQe150659デフォルトの名無しさん
2015/02/05(木) 21:17:37.70ID:TA3CE4tWMから制御する必要ないっていうのがMVVMやろ
0660デフォルトの名無しさん
2015/02/05(木) 22:49:53.62ID:FZgHg23p0661デフォルトの名無しさん
2015/02/05(木) 22:53:37.46ID:TA3CE4tW0662デフォルトの名無しさん
2015/02/05(木) 23:01:27.37ID:FZgHg23pただの頭のおかしいおっさんの戯言なんじゃね?
0663デフォルトの名無しさん
2015/02/05(木) 23:10:41.33ID:TA3CE4tWugayaの主張は画面ロジック用Model用意しろよって奴だろ?
特に矛盾してないんじゃねえの
0664デフォルトの名無しさん
2015/02/05(木) 23:22:55.05ID:FZgHg23p0665デフォルトの名無しさん
2015/02/05(木) 23:26:59.18ID:TA3CE4tW画面を表現するModel層に居るクラスとその他Modelだけでシステム的には完成していて、
VMは画面Modelのイベントをトリガーにプロパティ見に行って画面に勝手に反映しろ
って事だと俺は理解したが
0666デフォルトの名無しさん
2015/02/05(木) 23:51:05.70ID:FZgHg23pそれMVVMでは通常VMに分類される機能を分割して下側をMVCのノリでMと呼んでるだけじゃないの?ってのが>>656な
0667デフォルトの名無しさん
2015/02/05(木) 23:53:14.94ID:TA3CE4tWその分類が間違ってるって話じゃないの? >>653 って
0668デフォルトの名無しさん
2015/02/06(金) 00:37:19.25ID:y2jAaFN10669デフォルトの名無しさん
2015/02/06(金) 07:46:15.81ID:8HEPQWi+0670デフォルトの名無しさん
2015/02/06(金) 07:47:23.88ID:Ql31eeca0671デフォルトの名無しさん
2015/02/06(金) 20:04:03.13ID:RHPXxKct0672デフォルトの名無しさん
2015/02/06(金) 20:46:30.69ID:vevPP1Wkその次に増やすとしたらugaya流Mよりビジネスロジックのが先だろうからugaya設計の出番は最低でも5層アーキからってことになる
そんなのを一般論のように掲げるのはちょっとおかしいだろ
0673デフォルトの名無しさん
2015/02/06(金) 21:04:03.06ID:RHPXxKct話の中で想定されているアプリケーションは、Twitterクライアントなのかもしれないし。
0674デフォルトの名無しさん
2015/02/06(金) 23:26:00.78ID:tPEv492S0675デフォルトの名無しさん
2015/02/07(土) 16:52:57.42ID:PQ3B7sw+VMが必要になる時点で色々おかしい
俺はMVVMなんていってる内はWPFは普及しないと思ってる
V/Mになったら呼んで
0676デフォルトの名無しさん
2015/02/07(土) 16:59:47.72ID:DCqCAXwsまあ大半のプログラムはVMじゃなくてコードビハインドに書いちゃった方が見通しがいいよねw
モデル部分までコードビハインドに書いちゃう無設計はもちろん論外だが。
0677デフォルトの名無しさん
2015/02/07(土) 17:33:42.38ID:82UCkKHf別に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:InEScubzMSの投資先はすでに他に移っており、WPFに機能を追加する気はありません
今後行われるのはパフォーマンスの向上とバグ修正くらいなものです
故にあなたが望む未来は永久に訪れません
0680デフォルトの名無しさん
2015/02/07(土) 20:20:03.74ID:qUv52GO00681デフォルトの名無しさん
2015/02/07(土) 20:34:01.78ID:Xp9IHq1aそっちの方面は調子いいもんな。
お払い箱を告げられたモバイルやRTと違って。
0682デフォルトの名無しさん
2015/02/07(土) 20:39:58.69ID:eMOSZTzl0683デフォルトの名無しさん
2015/02/10(火) 15:07:16.37ID:+I0NGchrまじかよ、wpfオワコンなの?
0684デフォルトの名無しさん
2015/02/10(火) 16:14:08.57ID:NZ3MCRWw0685デフォルトの名無しさん
2015/02/10(火) 16:34:55.09ID:wU2cn4pE0686デフォルトの名無しさん
2015/02/10(火) 21:17:48.22ID:goP12br0結局のところ、WPFとほとんど変わらんと。
0687デフォルトの名無しさん
2015/02/10(火) 21:36:31.26ID:6GP4C07+何度それはありえないって説明しても定期的に湧くなこの意見w
0688デフォルトの名無しさん
2015/02/10(火) 21:39:34.04ID:NN8LXSdA0689デフォルトの名無しさん
2015/02/12(木) 11:41:48.25ID:E5Mv2Dat0690デフォルトの名無しさん
2015/02/12(木) 11:55:20.29ID:WU7UMI6b0691デフォルトの名無しさん
2015/02/12(木) 13:27:07.22ID:E5Mv2Dat0692デフォルトの名無しさん
2015/02/12(木) 15:00:42.65ID:szuZ+kMK概念として促すだけでユーザ丸投げじゃなぁ…しらんやつはしらんのだわ。MVVMなんぞ
0693デフォルトの名無しさん
2015/02/12(木) 23:29:39.50ID:VlG3+PCNSystem.Windows.Interactivity.dll
せめてBlendのこの2つがデフォで入ってれば全然違うのにと思う
0694デフォルトの名無しさん
2015/02/13(金) 00:30:47.33ID:wZDongBqソース見たらいろいろ握りつぶしてあったりして信用がならない
ダイアログとかも処理法が突っ込みいれたくなる
0695デフォルトの名無しさん
2015/02/13(金) 06:09:15.12ID:PnXF9YQoWPFにべったり特化してる分使いやすいよ
あと小さいからソース読みやすいのが個人的には良い
0696デフォルトの名無しさん
2015/02/13(金) 06:33:41.46ID:5o25IZNRほんと謎。
0697デフォルトの名無しさん
2015/02/13(金) 10:48:23.37ID:bOvRzLgH同感
コマンドや同期周りもおかしかったし、高品質なライブラリとは言えないね
使いながらLivetの改良に積極的にコミットするつもりなら採用してもいいんじゃないかな
0698デフォルトの名無しさん
2015/02/13(金) 13:04:38.89ID:XSQVLgMOLivet以外使ったことないんだよ
他の有名どころも時間かけて評価する暇なんかなかったし
0699デフォルトの名無しさん
2015/02/13(金) 16:30:43.37ID:NFnP7gar0700デフォルトの名無しさん
2015/02/13(金) 17:33:27.81ID:XSQVLgMOJavascriptだとこういうページがあるんだけど、MVVMライブラリでも似た感じのものないかな?
TodoMVC
Helping you select an MV* framework
http://todomvc.com/
0701デフォルトの名無しさん
2015/02/15(日) 11:58:11.41ID:8QvHJbe8がちがちなフォームアプリにくらべて見通しが良くなったとはとても思えないし、改修しやすいともおもわない
0702デフォルトの名無しさん
2015/02/15(日) 12:04:24.39ID:fbap6qPV他にいいアーキテクチャって何があるのよ
0703デフォルトの名無しさん
2015/02/15(日) 16:55:48.43ID:AnBV+qA50704デフォルトの名無しさん
2015/02/15(日) 18:01:35.80ID:UPOIc5dEそれに合ったMVVMみたいなアーキテクチャを採用しないからダメダメになるんだよForm脳は
0705デフォルトの名無しさん
2015/02/15(日) 18:09:12.22ID:uxAoEDAd0706デフォルトの名無しさん
2015/02/15(日) 18:21:10.44ID:A0a3xwJ9マイクロソフトがろくに実装できない時点で
そもそも思想からして間違っていると言える
0707デフォルトの名無しさん
2015/02/15(日) 18:23:29.81ID:AnBV+qA50708デフォルトの名無しさん
2015/02/15(日) 18:28:09.94ID:uxAoEDAdMVVMが唯一解だとも思ってないけど。
0709デフォルトの名無しさん
2015/02/15(日) 18:30:19.49ID:uxAoEDAdあの開発者まだ開発してるんだろうか?
0710デフォルトの名無しさん
2015/02/15(日) 18:58:21.49ID:UPOIc5dEMicrosoftが開発しているMVVM対応ライブラリは2つもあるわけだが?
0711デフォルトの名無しさん
2015/02/15(日) 19:51:00.63ID:jdTgUrjz音楽性の違いで仲間割れでもしてるのか?
0712デフォルトの名無しさん
2015/02/15(日) 21:05:04.55ID:GzjfaC2V0713デフォルトの名無しさん
2015/02/16(月) 00:16:21.53ID:CrHFSfx8継承できたかシランけど
0714デフォルトの名無しさん
2015/02/16(月) 19:21:50.82ID:fI963aAP0715デフォルトの名無しさん
2015/02/19(木) 09:33:58.46ID:Mt3XTzzFどうも一度expanderを開かないとVMとチェックボックスがバインドしなくて、開かないままだとVMからデータグリッドの列の制御がうまくいかない
expanderを開かずにVMと同期させる方法があったら教えて下さい。なければ初期化時に開くしか無いだろうが
0716デフォルトの名無しさん
2015/02/19(木) 13:17:55.78ID:QKlW2z7T試してないぞ
0717デフォルトの名無しさん
2015/02/19(木) 19:04:26.56ID:PvzcK4yQコントロールが生成されるまでバインディングされない
ListboxなどのItemsPanelControlを継承してるコントロールでVirtualizingを有効にしててもはまる
0718デフォルトの名無しさん
2015/02/19(木) 19:06:47.61ID:PvzcK4yQというか、チェックボックスで制御するんじゃなく、VMのプロパティと表示非表示をバインディングすれば?
0719デフォルトの名無しさん
2015/02/19(木) 20:12:07.62ID:WmNRMUFg切って問題ないなら仮想化を切った方がいい
0720デフォルトの名無しさん
2015/02/19(木) 22:01:22.25ID:0YVtd4lIVMに状態置いておけば、Vが仮想化してようがいまいが意識する必要ないと思うが。
0721デフォルトの名無しさん
2015/02/19(木) 22:36:27.51ID:amIzamNq0722デフォルトの名無しさん
2015/02/21(土) 09:11:03.27ID:QoAL1P4UTreeViewのContextMenuのIsOpenをバインドした時、最初の右クリックを失敗するのはその関係なんですかね?
0723デフォルトの名無しさん
2015/02/21(土) 13:54:32.05ID:bOBLMWsa0724デフォルトの名無しさん
2015/02/21(土) 16:27:31.93ID:jWUDO970ただ、今までできたことができなくなると大問題。
0725デフォルトの名無しさん
2015/02/22(日) 17:02:14.59ID:LBixWBIAVMでアイテムが選択状態かどうか保持するプロパティを持たせる
その選択状態とListBoxItemのIsSelectedをBindingする
VM側でまだコントロールが生成されてない(表示されてない)アイテムの選択状態プロパティを変更する
仮想化してなければ普通にスクロールされてアイテムが選択状態になる
ところが仮想化されてるとListBoxには何の変化も起きない
0726デフォルトの名無しさん
2015/02/22(日) 17:19:47.76ID:A2RKkiUD何か余計な事でもしてるんじゃない?
0727デフォルトの名無しさん
2015/02/22(日) 17:46:42.78ID:Oh5yzEuyそんな動きしてるとしたら仮想化の実装自体が腐ってるんだが。
VMの状態をコントロールが反映しないでどうする
0728デフォルトの名無しさん
2015/02/22(日) 20:27:56.20ID:LBixWBIAそれがだめって言われれば仕方ないが
仮想化されてると表示されてないアイテムはまだ生成されてないから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つかぬことをお尋ねしますが、俺はListBoxItemなどにモデルを直接バインドしていたけど
VMを噛ませる方が正当なんですか?皆どうしているのか気になっただけで他意はありません
0732デフォルトの名無しさん
2015/02/22(日) 22:03:32.62ID:tq8+HI3uそれは紛れもないことだ
0733デフォルトの名無しさん
2015/02/22(日) 22:49:24.53ID:HdQJajIv0734デフォルトの名無しさん
2015/02/23(月) 07:42:59.41ID:vTCWNzEvモデルからVMテンプレート吐き出すツール使ってるから必ずVMかませてるけど、そういうのないと、面倒だしな
モデルとVMが全く一緒ならかませる意味ないというかモデルのプロパティ追加忘れたりするデメリットになる
VM作らないのが正当かどうかは自分が決めれば良い
0735デフォルトの名無しさん
2015/02/23(月) 07:50:34.97ID:B9nSE12P0736デフォルトの名無しさん
2015/02/23(月) 08:27:14.78ID:vTCWNzEv0737デフォルトの名無しさん
2015/02/23(月) 09:35:37.72ID:8dAitpX+少し説明がわかりにくかったようですいません。DataContextに突っ込むオブジェクトはVMかますべきだと思っているが
ItemsSourceに突っ込むのはどうしているのか気になったんですよ
件のIsSelectedが実装されているのはItemsSource系のオブジェクトだからね
0738デフォルトの名無しさん
2015/02/23(月) 09:42:38.10ID:vTCWNzEvそういう意味ではVMかましてる
IsSelectedなんてのはモデルに持つものじゃないから
0739デフォルトの名無しさん
2015/02/23(月) 09:48:04.97ID:vTCWNzEvIsSelectedにBindingするプロパティがモデルに対して作用するものならモデルに持たせる話だし、選択したものを削除みたいな話ならVMにわけるべきだと思う
0740デフォルトの名無しさん
2015/02/23(月) 11:23:44.91ID:8dAitpX+原理原則から言ったらVM持つのが正論だろうが、モデルのコレクションとVMのコレクションが二重化されて
バグの元になりそうで怖い
モデルでコレクションにアイテムを追加削除した場合、どういう設計でVMに反映させているのか教えてもらえませんか?
0741デフォルトの名無しさん
2015/02/23(月) 11:41:25.51ID:B9nSE12P0742デフォルトの名無しさん
2015/02/23(月) 12:04:14.39ID:vTCWNzEvStackoverflow のMVVM SYNC COLLECTION スレッド(?)にモデルのコレクションとVMのコレクションを勝手に同期とってくれるクラスが載ってるから見てみると良いかも
そのままだとM→VMは同期取れるけど、VM→Mの同期はとれないから、VM側のコレクションはReadOnlyObservavbleCollection返すのと、CollectionChangedにWeakEventHandler使うようにした改良版使ってる
0743デフォルトの名無しさん
2015/02/23(月) 12:13:21.46ID:vTCWNzEvコレクションの操作は一貫してモデル側で行う
VMコレクションに操作を許してモデルに反映させるなんてのはしないし、やっちゃいけないと思ってる
0744デフォルトの名無しさん
2015/02/23(月) 12:32:44.39ID:B9nSE12P0745デフォルトの名無しさん
2015/02/23(月) 12:51:13.83ID:8dAitpX+とりあえず発見したから時間を見て読んでみます。有難うございました
http://stackoverflow.com/questions/1256793/mvvm-sync-collections
0746デフォルトの名無しさん
2015/02/23(月) 14:13:43.66ID:vTCWNzEv逆にきくけど、新規行なんかはモデルをもってないVMに退避してるってこと?
0747デフォルトの名無しさん
2015/02/23(月) 14:21:26.53ID:vTCWNzEvやっちゃいけないと言うのは俺の中でのルールね
他人に押し付ける気はないし、俺が採用してる方法がベストとも思ってないから「良いかも」なんて書き方した
0748デフォルトの名無しさん
2015/02/23(月) 14:57:59.69ID:bL49HgzsWPFをやっているとこうなるのか
0749デフォルトの名無しさん
2015/02/23(月) 15:47:07.68ID:BV5+1OQhViewModel使ったことないから、質問したいんだけど、「モデルのコレクションと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:CTkiKWOHC++をWPFに置き換えて同じ筋書で記事が書けそうだ。
0751デフォルトの名無しさん
2015/02/23(月) 16:43:24.95ID:fdQCs84dModelも、VMもObCollection<Hoge>を持ち
なんらかの手段で両者を連動させる。
0752デフォルトの名無しさん
2015/02/23(月) 16:59:50.29ID:5h1cL4YB3が一番近い気がするが
Model2のコレクションをもつModel1があります
Model1のビューモデルであるVM1はModel2のコレクションをそのまま返すか、Model2のビューモデルであるVM2のコレクションを返すのか?
VM2のコレクション返すなら、その同期はどうやってとるのか?
というのが元々の話
Model2のコレクションにアイテム追加したり削除したらVM2のコレクションからも追加、削除しないとあかんだろ?
0753デフォルトの名無しさん
2015/02/24(火) 07:54:10.93ID:pSXif3Rrあ、要らないですwww
0754デフォルトの名無しさん
2015/02/24(火) 10:55:38.15ID:9wamdPj6> 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+/ZCTweetModelのコレクションを持つTwitterModelはどうしたよ
0756デフォルトの名無しさん
2015/02/24(火) 13:42:16.16ID:9wamdPj6ますます混乱してきました。
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もともと、ぼんやりと持っていたMVVMのイメージと全然違ったんですが、あるオブジェクト(Model)と、その集合を
扱う場合、一般的にその構造にするものなのでしょうか?
0759デフォルトの名無しさん
2015/02/24(火) 19:24:35.68ID:KsFfzAtK好きにしろって言ってるだろ
手法の一つ提示しただけだ
0760デフォルトの名無しさん
2015/02/25(水) 10:16:26.09ID:6XiXkLWgTweetの例ならVMが直接Collection<Tweet>を公開すればいいよ
コマンドのバインディングとか必要な場合でも一旦メインのVMで一括して受けた方が楽
0761デフォルトの名無しさん
2015/02/25(水) 10:17:11.17ID:G9xqzW0/コレクションとコレクションの同期ってどういうこと?っていう疑問を解消したかっただけですので。
別のやり方があるとわかって安心しました。
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煩雑になるのはVM側のコレクションの操作を許したり、同期を手動でやるからだ
0765デフォルトの名無しさん
2015/02/25(水) 12:46:32.33ID:1WdcdUPu階層構造とかどうすんだみたいな話にもなるし
0766デフォルトの名無しさん
2015/02/25(水) 16:10:57.92ID:1WdcdUPu質問なんだが、その方法でメーラーみたいなアイテムを複数選択可能で選択したものを削除、とか条件に一致したものを選択状態(チェックをつける)にする、みたいな処理をどう記述するんだ?
0767デフォルトの名無しさん
2015/02/25(水) 16:19:13.42ID:p+1nQsEt標準ではできないから、そういう添付プロパティを用意しておく必要はあるけど
0768デフォルトの名無しさん
2015/02/25(水) 16:32:10.27ID:SmT1rFL5表示するだけのものだったらそのままでいいし、それ以上のことしたかったらIPropertyChangedなりなんなりつければいいだけ。
MVVMの本来の目的と、それがどう解決されてるかを考えれば自ずと答えは出ると思うんだけどな
0769デフォルトの名無しさん
2015/02/25(水) 18:32:08.99ID:wVqr5ecw確かに>>766の例ならそれでいいな
ただ、条件に一致したものは赤文字表示、それとは別に選択状態持つと無理だし、
アイテムが選択されているかどうか調べる計算量はNxNになるし、部分集合が増えれば増えるほど
同期とるのが面倒だったり同期し忘れたりするでしょ
0770デフォルトの名無しさん
2015/02/25(水) 18:33:46.17ID:wVqr5ecw0771デフォルトの名無しさん
2015/02/26(木) 01:16:20.91ID:oKoUOdLgVにバインドされないな意味でVMじゃなくね?
Vのデータコンテキストでバインドせずに、個別にバインドすると管理大変じゃね?
ある依存プロパティにバインドされた値を変更したからって、別の依存プロパティにバインドされた値が反映されたことを期待するのは本質的にV直接操作してるのと変わらなくないし、WPF的には保障されないでしょう?
という疑問がよぎった。
明後日の方向のこと言ってたらごめん
0772デフォルトの名無しさん
2015/02/26(木) 01:17:20.69ID:oKoUOdLg0773771
2015/02/26(木) 02:54:34.89ID:PXLMJNGgVのdatacontextにバインドせずに、個別にバインドすると↓の原則もあるし、見づらい気がする
WPFとしては、ある依存プロパティと別の依存プロパティの値が、同期的に値を保持されているのを期待するのは、そもそも間違ってる
理論的にも、Vを直接操作しようとしてしまう状態と、本質的に変わらない
>>769
描画領域が変わらない範囲ならビヘイビア・VisualStateManager辺りで自由にitemのプロパティを値を元に決定する、はず?
0774デフォルトの名無しさん
2015/02/26(木) 08:16:07.97ID:blFDmu++0775デフォルトの名無しさん
2015/02/26(木) 08:35:51.38ID:rnY64eLq自分の中で割り切れるくらい経験を積めば自然に治る
まだまだベイビーちゃんばかりだ
0776デフォルトの名無しさん
2015/02/26(木) 09:18:24.19ID:aGxC82w90777デフォルトの名無しさん
2015/02/26(木) 09:27:08.91ID:MEigcXOU小規模なクラスならごっちゃにしたほうが解りやすいよな
0778デフォルトの名無しさん
2015/02/26(木) 11:09:15.42ID:/+AXEgANごっちゃにするメリットってとりあえずすぐかけるだけでそれもメリット薄いしすぐその弊害出て来る。自分の経験上では。
F#だとデータ型作るのも楽だしほぼ全てMVVM的にやって快適です。
つーかMVVMの定義とか仕組みに踊らされすぎだろ。
別に必要なければ素のクラスでいいし必要なら通知の仕組みなど入れればいいだけ。分離できて綺麗にかけて動けばいいんだよ
0779デフォルトの名無しさん
2015/02/26(木) 11:15:51.95ID:rJrYfait禿同意
0780デフォルトの名無しさん
2015/02/26(木) 11:58:33.10ID:2wsA1wo7> 分離できて綺麗にかけて動けばいいんだよ
それを実現するには大量のコードが必要になるわけで
0781デフォルトの名無しさん
2015/02/26(木) 12:11:45.35ID:5yXxUYv/関数型だから宣言的に書けるかと思ったのにがっかりだよ
C#7に期待したい
0782デフォルトの名無しさん
2015/02/26(木) 12:23:51.78ID:5yXxUYv/だから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少しは腰を落ち着けたいなう
0785デフォルトの名無しさん
2015/02/26(木) 19:43:04.48ID:cGnKpNs30786デフォルトの名無しさん
2015/02/26(木) 20:46:17.33ID:FPelYsMd0787デフォルトの名無しさん
2015/02/26(木) 21:22:25.42ID:5769K/8F0788デフォルトの名無しさん
2015/02/26(木) 21:29:31.89ID:0igy2WbD0789デフォルトの名無しさん
2015/02/26(木) 23:52:40.39ID:DUk+L+jHhttp://ugaya40.hateblo.jp/entry/model-mistake
この辺読んでみるといいんじゃないかな
0790デフォルトの名無しさん
2015/02/26(木) 23:58:42.60ID:yOo8sxrr0791デフォルトの名無しさん
2015/02/27(金) 06:34:38.23ID:PcQqIrJh0792デフォルトの名無しさん
2015/02/27(金) 06:52:04.67ID:v/A3JJUHというかモデルの本体って大抵はネットワーク越しにサーバーにあるもんだから、
クライアントのModelなんて単なる通信クライアントだよ
0793デフォルトの名無しさん
2015/02/27(金) 09:20:12.04ID:cP25/4mO0794デフォルトの名無しさん
2015/02/27(金) 09:48:31.80ID:4Ku2v7u7でビューがモデルに直結すんの?
自分的にはMVCよりMVVMの方が責務が明確で好み。
0795デフォルトの名無しさん
2015/02/27(金) 10:09:07.72ID:JQ+z3IAMモデルが何を表示するのかを決定しているわけじゃないからMVVM的にも問題ないだろうし
0796デフォルトの名無しさん
2015/02/27(金) 10:16:39.09ID:0YJc/4A4M直結で用が足りるならわざわざVMなんか要らん
VMなんかどうしても必要になってからでいい
MVVMの教義なんかより遥かに重要なのはDRYだよ
0797デフォルトの名無しさん
2015/02/27(金) 15:00:43.14ID:my+0u8IU頭悪いん?
0798デフォルトの名無しさん
2015/02/27(金) 15:50:49.84ID:HeISCIzr0799デフォルトの名無しさん
2015/02/27(金) 17:02:41.47ID:JQ+z3IAMPropertyChangedはXamlじゃなくてもハンドリングできるわけだが
0800デフォルトの名無しさん
2015/02/27(金) 19:01:43.49ID:nTU+bWfSVMはModelを束ねるだけ
趣味プログラミングだから特に困ったことはない
0801デフォルトの名無しさん
2015/02/27(金) 19:35:48.46ID:v/A3JJUHどのプロパティが変わったかswitchで判定するのか?w
PropertyChangedは人間が使うもんじゃないよ
0802デフォルトの名無しさん
2015/02/27(金) 19:56:56.06ID:PcQqIrJh0803デフォルトの名無しさん
2015/02/27(金) 20:05:49.60ID:kkoDllmu0804デフォルトの名無しさん
2015/02/27(金) 20:23:06.65ID:v/A3JJUH0805デフォルトの名無しさん
2015/02/28(土) 05:46:45.33ID:Nys/sxvj0806デフォルトの名無しさん
2015/02/28(土) 11:13:08.82ID:hc+4WmhtストアアプリでもないのにXAMLで作るって誰も得しないよな
0807デフォルトの名無しさん
2015/02/28(土) 12:04:42.06ID:0qaXH1f4レイアウトの一番上はStackPanel。その下に色々あって、一番最後にListBoxがある。
そのlistboxの高さを、listboxの要素数に限らずウィンドウの高さいっぱいにしたいのですが
方法を教えて頂けますでしょうか
http://pastebin.com/Rfxi2RV8
0808デフォルトの名無しさん
2015/02/28(土) 12:13:10.37ID:u2d/ZWEO0809デフォルトの名無しさん
2015/02/28(土) 12:15:31.30ID:l+nQWLxR0810デフォルトの名無しさん
2015/02/28(土) 12:31:32.48ID:0qaXH1f40811デフォルトの名無しさん
2015/02/28(土) 13:32:34.34ID:w7kc15Xm0812デフォルトの名無しさん
2015/02/28(土) 13:40:44.35ID:ZM25yNzG0813デフォルトの名無しさん
2015/02/28(土) 18:12:01.63ID:BrOlRyDeそういや大体手書きだからデザイナの使い方ってさっぱり分からんな
0814デフォルトの名無しさん
2015/02/28(土) 23:51:54.74ID:6oY+Vq0l0815デフォルトの名無しさん
2015/03/01(日) 02:57:21.70ID:cyp+wkSl高dpiで綺麗に表示するのは
wpfにしか無理
0816デフォルトの名無しさん
2015/03/01(日) 13:44:48.24ID:hOgcRoIuWebアプリなら最初から高DPI対応だ
0817デフォルトの名無しさん
2015/03/01(日) 14:02:43.35ID:XdGnHlJv0818デフォルトの名無しさん
2015/03/01(日) 14:03:42.42ID:fFu5O6QJ0819デフォルトの名無しさん
2015/03/01(日) 14:11:38.11ID:pZeLnU6yVSがWebベースになる日もそう遠くない
0820デフォルトの名無しさん
2015/03/01(日) 14:21:25.44ID:Sga1DM1F0821デフォルトの名無しさん
2015/03/01(日) 15:31:55.13ID:9ZPcT+Db0822デフォルトの名無しさん
2015/03/01(日) 19:23:18.82ID:7Eh8uB9NHTML5のほうが間口が広い
いつかはほぼHTMLが主流になるのはわかってるけど
まだ移行したくない
つかjsの開発環境地獄すぎるからな
0823デフォルトの名無しさん
2015/03/01(日) 20:51:56.65ID:Ll8mwVzpそうなの?
俺はないと思うけどなあ。
0824デフォルトの名無しさん
2015/03/01(日) 21:05:43.96ID:pZeLnU6y今の業務アプリはほとんどWebなんだから
スマホなどのネイティブアプリだって今時バックエンドのAPIに繋がってないのなんて無いだろ?
クライアントのアプリ自体が単なるビューに過ぎないだよ
0825デフォルトの名無しさん
2015/03/01(日) 21:26:46.36ID:Ll8mwVzpいやいやVB6の時代からシェアほとんど変わってないでしょ。
できることも大して変わっちゃいないんだから
0826デフォルトの名無しさん
2015/03/01(日) 21:28:06.03ID:pZeLnU6yASP.NET
0827デフォルトの名無しさん
2015/03/01(日) 21:34:34.21ID:KW+So7wa操作性の良いWebサイトなんてIT土方には荷が重すぎるからね
0828デフォルトの名無しさん
2015/03/01(日) 21:54:47.16ID:ZPPZmGUp0829デフォルトの名無しさん
2015/03/01(日) 23:16:24.28ID:wyUXflXZ逆に今スマホ案件でやってるような微妙な使い勝手を共通のHTMLアプリで作れてかつ各プラットフォームの動きにも沿ってくれると楽だけどそれも難しそうやね
0830デフォルトの名無しさん
2015/03/02(月) 23:59:40.55ID:u52usFvA0831デフォルトの名無しさん
2015/03/03(火) 13:34:58.61ID:3DfJzsOMWindows 7で起動してみたら、見た目が全然違うし、コントロールが画面からはみ出したりして困ってます。
・Windows 7で起動したときの見た目を、Windows 8で起動したときのようにできますか?(これができるのがベスト)
・上記ができない場合、Windowsサイズをコントロールがちゃんと収まるように自動調整することはできますか?
0832デフォルトの名無しさん
2015/03/03(火) 13:41:55.69ID:enI1zZfH0833デフォルトの名無しさん
2015/03/03(火) 14:09:05.51ID:3DfJzsOM> WPFならできるよ
WPFスレなので省略したのですが、もちろん、WPFあぷりです。
どうすればできますか?
何か検索できるキーワードがあれば教えてください。
wpf windows 8 windows 7で検索してみたんですが、めぼしいものが見つかりませんでした。
0834デフォルトの名無しさん
2015/03/03(火) 14:19:56.20ID:pNXyLjS70835デフォルトの名無しさん
2015/03/03(火) 14:49:15.02ID:3DfJzsOMひょっとすると、私の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 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:fJY9J9900838デフォルトの名無しさん
2015/03/03(火) 16:20:27.92ID:c94PfRJJとりあえず height="auto"を試してみるといいよ
0839デフォルトの名無しさん
2015/03/03(火) 16:38:32.39ID:3DfJzsOMautoは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:eHcPUX2E0841デフォルトの名無しさん
2015/03/03(火) 16:48:51.70ID:3DfJzsOM!!!
<Window Height="auto" SizeToContent="Height">
で全て解決しました!!!
ありがとうございました。
0842デフォルトの名無しさん
2015/03/03(火) 21:03:26.79ID:QckUZYNI340*とか指定しても340/340スターだから*と変わらない
0843デフォルトの名無しさん
2015/03/03(火) 22:35:04.20ID:/ywKJHzP0844デフォルトの名無しさん
2015/03/04(水) 23:43:49.05ID:ZN/AF6av×ボタンが押されたのか、タスクバーから閉じられたのかを判別する方法はありませんか?
0845デフォルトの名無しさん
2015/03/05(木) 00:10:22.66ID:P+MhnSrP0846デフォルトの名無しさん
2015/03/05(木) 00:43:45.76ID:Ofw5zExQ0847デフォルトの名無しさん
2015/03/05(木) 01:00:19.10ID:Y3NrhZrt0848デフォルトの名無しさん
2015/03/05(木) 01:28:20.59ID:IEkTY5h9判別して何したいのか気になる
0849デフォルトの名無しさん
2015/03/05(木) 05:34:44.43ID:n3NecQLRcloseは一緒でも
その前に別のが来る
0850デフォルトの名無しさん
2015/03/05(木) 08:27:51.81ID:4kvQPOFr0851デフォルトの名無しさん
2015/03/05(木) 09:39:24.40ID:IEkTY5h9フラジャイルだなー(´・ω・`)
0852デフォルトの名無しさん
2015/03/05(木) 15:24:30.45ID:n243tM8Kちょっと意味がわからない
0853デフォルトの名無しさん
2015/03/06(金) 02:46:38.06ID:KoKXQFWLWPFで作ってるんだけどムダかな?
MVVMが理解出来てない人がWPFを使うメリットって見た目以外に無いよね?
0854デフォルトの名無しさん
2015/03/06(金) 03:13:49.73ID:H9DcjQPq0855デフォルトの名無しさん
2015/03/06(金) 04:10:19.82ID:1hMlZT/C別にメリットがあるならいーんじゃねの
0856デフォルトの名無しさん
2015/03/06(金) 07:13:22.30ID:coWMRvsxWPFは高機能すぎてクソ複雑だから、それを業務アプリのように
画面が沢山あるアプリで活用しようとすると煩雑になりすぎる
だからMVVMで少しでも楽しようってことだよ
WebのMVCを見てみろ、データ取ってきてスクリプトでテキスト吐くだけの最高に頭悪い仕組みだぞ
それでもほとんどのアプリにはあれで十分なんだよ
0857デフォルトの名無しさん
2015/03/06(金) 09:03:35.24ID:eETCE8ftWPFの真の面白さは理解できないよ
0858デフォルトの名無しさん
2015/03/06(金) 09:06:01.67ID:TaB/WAXSこれやね
https://www.youtube.com/watch?v=OVfH9-ZQLpo
0859デフォルトの名無しさん
2015/03/06(金) 09:12:28.28ID:D8scrMxU0860デフォルトの名無しさん
2015/03/06(金) 12:35:32.27ID:coWMRvsx本来の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プラグインを増やすのは慣れると楽しい
0864デフォルトの名無しさん
2015/03/07(土) 10:05:26.23ID:p/374YSTよくわからんが単純にかきたいならコントロール直接生成&設定とかもできるわけで、Webのソレとコード量、手間含めたいしたちがいないとおもうが。
MVVMは疎結合の仕組みであってそのメリットいらないからゴリッと簡単に書きたいならそうすれば。バリデーションいらないテキスト入力してエンターとかだったら自分もわざわざVMとかつくんねーよ
何で臨機応変にできないのかイミフ(´・_・`)
0865デフォルトの名無しさん
2015/03/07(土) 10:50:22.59ID:MlGEwDRlモデル弄るのが大変なドカタ開発にはいいかもしれないけど、
Web系みたいにモデルが単なるデータに近くてDB構造がしょっちゅう変わるような開発だと
ただ右から左へ受け渡すだけのプロパティをVMに並べるのはデメリットの方が大きいだろうね
0866デフォルトの名無しさん
2015/03/07(土) 13:42:35.65ID:3HA4mQbj画面用クラスとして定義するのはそこまで嫌いじゃないなー
似たようなのを書く羽目にはなるけど、クラス結合はV-VMとMでぶった切れるので、
ビジネスロジックが重くてUIスレッドが固まる〜みたいなクソにならないし。
0867デフォルトの名無しさん
2015/03/08(日) 01:30:22.70ID:ylREksfHSystem.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コレクションにnull突っ込んでんだったら、
ComboBoxのSelectedItemがnullに変わってSelectionChanged飛んでるんじゃないの
0870デフォルトの名無しさん
2015/03/08(日) 03:10:47.38ID:k1c7apXcダイアログが開いている間だったらそれでいいんですけど、
ダイアログを破棄した後も(ダイアログの)イベントがやって来るので何か忘れてるのかなと思いまして。
0871デフォルトの名無しさん
2015/03/08(日) 04:29:21.49ID:f7k++9Sqというか、ダイアログのSelectionChangedが飛んでくるってどういう状況よ
明示的にイベント登録した後に明示的にイベント登録解除してないだけじゃない?
0872868
2015/03/08(日) 20:38:29.06ID:k1c7apXcd = 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あとFullGCしたいならGC.WaitForPendingFinalizers(); の後にもう一回GC.Collect必要だし、
そもそもGC.Collectをそんな用途で使うべきではない
0874868
2015/03/08(日) 21:00:25.81ID:k1c7apXchttp://nullpoarchives.orz.hm/uploader/upload/File14843.zip
解凍pass : 1410523389
Owner設定とShowDialog()は(>>872とは違い)ダイアログ側でやってましたが関係ないよね?
0875デフォルトの名無しさん
2015/03/08(日) 21:01:57.59ID:k1c7apXcごめん書き込みに気付かなかった。
GCについての指摘、ありがとうございます。
苦し紛れで入れたものですが、消しておきます。
0876デフォルトの名無しさん
2015/03/08(日) 21:25:19.70ID:f7k++9SqForm臭が凄い
このSelectionChanged、何の為に存在してるんだ? 完全に不要だろコレ
MainWindowにList型dp定義してBindingすれば何の問題もない
イベントが飛んでくる事自体の理由は単純にSelectionChangedをXAML上に書いてるから
イベントが解除されるルートが存在しないため、上記どういう経路でもDataContextやら
ItemsSourceの値が変わるのでSelectionChangedが発生するってだけ。
0877デフォルトの名無しさん
2015/03/08(日) 21:27:17.40ID:f7k++9SqItemsSourceにコンストラクタで値突っ込むなBindingしろって感じだし、
WPFの作法覚えたほうが絶対早い
0878デフォルトの名無しさん
2015/03/08(日) 21:41:34.55ID:k1c7apXc余計なものを全部削ぎ落として現象を再現させるためだけのソースなので
SelectionChangedがこのソースではただあるだけになっています。
また、本来のソースでは参照先の切り替えもあるのでItemsSourceはコード側の定義になっています。
指摘いただいた部分、修正してみます
0879デフォルトの名無しさん
2015/03/08(日) 21:43:04.20ID:C+qqM5pQ>ItemsSourceにコンストラクタで値突っ込むなBindingしろって感じだし
ItemsSourceにコンストラクタでList突っ込んでBindingしたらダメなの?
0880デフォルトの名無しさん
2015/03/08(日) 21:50:39.16ID:f7k++9Sq挙動は変わらないけどダメだろ
for文じゃなくて同じコード100個コピペすればよくない? というのと同じレイヤでダメだろ
XAMLに書けるんだから変に情報を分散させるべきではない
0881デフォルトの名無しさん
2015/03/08(日) 23:50:42.29ID:LRWwztfSReactiveProperty使ってIObservable<IObservable<Hoge>>にしろよ
0882デフォルトの名無しさん
2015/03/09(月) 10:54:57.37ID:32eRtFGl> XAMLに書けるんだから変に情報を分散させるべきではない
これ、別の見方をすると、「特別な情報」をその他雑多な設定の中に紛れ込ませているとも言える。
何もかもが全部XAMLに入ってるとして、ざっとみて必要な情報を抜き出しづらい。
それよりも「特別な情報」は、コンストラクタで一括管理すれば、何がその「特別な情報」かがすぐわかる。
0883デフォルトの名無しさん
2015/03/09(月) 23:48:29.65ID:7OOxTo2y特別な情報をV/VM層が持ってるのおかしいんだけどな
0884デフォルトの名無しさん
2015/03/10(火) 00:11:03.96ID:fUgCi1F7MVVMLight最高。ほかを知らんだけだが
0885デフォルトの名無しさん
2015/03/10(火) 00:30:59.05ID:OkPaKt4+どこに何を入れるかはその時々だよ。
0886デフォルトの名無しさん
2015/03/10(火) 00:34:51.85ID:8kdI7WoLそらそーだけど、アプリ作れれば良いっていう作り方でアプリちゃんと作れるかというと…
>>884
やっぱ脳停止シングルトンにした方が楽なんだろうか…
0887デフォルトの名無しさん
2015/03/10(火) 01:18:31.56ID:NK8SFleHきっと特別な存在なのだと感じました
0888デフォルトの名無しさん
2015/03/10(火) 07:40:05.53ID:OpBf48bxアーキテクチャを理由にサボってるくせに
0889デフォルトの名無しさん
2015/03/10(火) 11:23:41.17ID:84lJtiyH> 特別な情報をV/VM層が持ってるのおかしいんだけどな
「特別な情報」というのは、「その他雑多な設定」以外の情報という意味で、その他雑多な設定というのは、
Viewそのものを構築するコードや見た目を定義するコードなどです。
ComboBoxが5つある画面があったとして、それぞれ何がデータバインドされてるかをXAMLから探し出すより、
コンストラクタに5行並んでた方がわかりやすいと、個人的には思います。
0890デフォルトの名無しさん
2015/03/10(火) 20:29:28.08ID:dyIR0Ys3そのやり方だと、コンボボックスの名前をXAMLから探し出すことになりそうだけど。
0891デフォルトの名無しさん
2015/03/10(火) 21:49:05.70ID:OkPaKt4+変数の名前が変わってもコンパイルがそのまま通ってしまうし
0892デフォルトの名無しさん
2015/03/10(火) 21:54:32.03ID:LTgXErzv0893デフォルトの名無しさん
2015/03/10(火) 21:58:36.82ID:fUgCi1F7INotifyPropertyChangedで()=>PropertyNameみたいにできればプロパティ名変更しても
追従してくれるぜ!どやどや!ってのが馬鹿らしくなるよなXAMLのせいで
0894デフォルトの名無しさん
2015/03/10(火) 22:41:55.85ID:seaEPtVF0895デフォルトの名無しさん
2015/03/11(水) 10:12:03.96ID:cBNF0VnC> そのやり方だと、コンボボックスの名前をXAMLから探し出すことになりそうだけど。
どういうことでしょうか?
コードを書くときに、XAMLから探す必要があるということですか?
だとすると、私の場合はたとえばComboBoxならcboHogeという命名規約にしています。そうすれば、cboとタイプすれば、インテリセンスで選択が容易です。
私が言いたいのは(もちろん個人的感想なんですが)、
・Viewの構造定義
・見た目定義
・VMとの関連あるいは、その他データソースとの関連
・Commandとの関連、あるいはイベントハンドリング
が全てXAMLにごっちゃになってるのが見通しが悪いのではということです。
0896デフォルトの名無しさん
2015/03/11(水) 13:12:55.45ID:wsBosi6xコメントかきゃいいだけじゃね?
0897デフォルトの名無しさん
2015/03/11(水) 15:55:26.75ID:cBNF0VnC> コメントかきゃいいだけじゃね?
異なる関心事がごっちゃになってても平気ならば、それでいいと思う。
この辺の感覚は、作るアプリの種類によっても全然違ってくると思う。
私の場合は、糞業務アプリしか作らず、画面にComboBoxが数十とかTextBox系が数十とかあったりすると、
全てをXAMLで書くと長大になってしまいがちだから。
0898デフォルトの名無しさん
2015/03/11(水) 16:42:24.20ID:X6PxjBu40899デフォルトの名無しさん
2015/03/11(水) 17:29:14.92ID:cBNF0VnC分野によるんじゃないでしょうか。
マスターだと項目が数十あったり、何かの測定結果を入力する画面だとControlが数十あったりがざらです。
0900デフォルトの名無しさん
2015/03/11(水) 17:33:48.97ID:cBNF0VnChttp://officeholmes.jp/work01.html
こんなのばっか作ってると嫌になります。
0901デフォルトの名無しさん
2015/03/11(水) 19:04:16.29ID:X6PxjBu4いろいろな宗教が有るだろうから人それぞれだが、俺はマスターには必要最低限の情報を厳選して
サブのテーブルに機能毎に項目割り振るから、マスターメンテでコンボボックスやテキストボックスだらけって状況避けるけどな
0902デフォルトの名無しさん
2015/03/11(水) 20:32:42.73ID:W6PmAFrU0903デフォルトの名無しさん
2015/03/11(水) 23:39:34.44ID:5EkQ77dJ0904890
2015/03/12(木) 00:50:00.45ID:pW4YjKPd特に深い意味はないよ。
XAML側でバインドすれば >>889 の言う通り、それぞれ何がデータバインドされてるかをXAMLから探し出すことになるけど、
コードビハインドに
cboHoge.ItemsSource = source1;
cboPiyo.ItemsSource = source2;
cboFuga.ItemsSource = source3;
って書いたら、cboHogeが画面上のどのコントロールなのかをXAMLから探すことになり、
つまりどっちみちXAMLから探すことになるんじゃないのかなって言いたかった。
0905デフォルトの名無しさん
2015/03/12(木) 11:56:40.83ID:FCsQ0GgGやはり分野によるんでしょうね。
主キーから一意に決定される属性が数十個あるなら、必要最低限の個数ががそれなんです。
(スレ違いですが、例えデータベース物理設計として複数テーブルに分割したとしても、ある一つの事柄のマスター登録は、大抵1画面にします。Control数的に収まるならですが。)
>>904
なるほど、そういう意味でしたか。理解しました。
0906デフォルトの名無しさん
2015/03/13(金) 17:27:59.32ID:lgYh4JEH0907デフォルトの名無しさん
2015/03/18(水) 11:55:14.82ID:g+8cwI7gListViewにアイテムを追加することは出来たのですが、追加した後に一番下にスクロールする方法がよく分かりません。
こういった場合どうすれば良いのでしょうか
0908デフォルトの名無しさん
2015/03/18(水) 13:26:09.57ID:ZVd9EoeU追加されたアイテムを画面内に表示させたいってことなら、BringIntoViewを呼び出すBehaviorでも書けば?
0909デフォルトの名無しさん
2015/03/18(水) 14:35:31.56ID:g+8cwI7gありがとうございます。
調べてかいてみます。
0910デフォルトの名無しさん
2015/03/20(金) 02:20:51.45ID:xCesDmzF0911デフォルトの名無しさん
2015/03/20(金) 22:44:35.33ID:fk8riHtEhttp://blogs.msdn.com/b/jpvsblog/archive/2015/03/19/automationpeer-initialize-nre.aspx
0912デフォルトの名無しさん
2015/03/21(土) 00:29:47.99ID:wTPdkcASそれはそうと、最近のMSOfficeってWPFに移行してるの?
LiberOfficeばかり触ってるから知らないんだが。
0913デフォルトの名無しさん
2015/03/21(土) 00:34:33.92ID:SYey43kMVSのシェルは非常に高度な一つのフレームワークであり、WPFはその低層に隠れている
単体でアプリに組み込めるようなもんじゃなくて、使うなら逆にVSの中にアプリを組み込む形になるんだよ
0914デフォルトの名無しさん
2015/03/21(土) 00:34:49.77ID:QY+/N3Tm0915デフォルトの名無しさん
2015/03/21(土) 10:35:27.98ID:BGjh54o4前に誰かが書いてたけどサードパーティーの有料UIパーツ使ってるってさ
0916デフォルトの名無しさん
2015/03/21(土) 15:25:42.56ID:7hK81Pmf0917デフォルトの名無しさん
2015/03/22(日) 21:53:12.90ID:Q3zPWfOoこのままいくと業務アプリは、あと30年ぐらいWindowsフォームで開発することになりそう。
つまりWindowsフォーム + データセットが、今のCOBOL的な位置づけになる。
0918デフォルトの名無しさん
2015/03/22(日) 21:58:51.70ID:3civYS9u意識高い系はWebに行っちゃったし、土方は当然WinFormsかWebForms
0919デフォルトの名無しさん
2015/03/22(日) 22:10:14.26ID:HL22uXML0920デフォルトの名無しさん
2015/03/22(日) 22:13:27.53ID:wM87Ote30921デフォルトの名無しさん
2015/03/22(日) 22:23:11.65ID:3civYS9u全くもってその通りだけど、WPFの話題だってほとんどはそういう連中が中心だったでしょ
土方には見向きもされてない
0922デフォルトの名無しさん
2015/03/22(日) 22:50:00.54ID:2ymaPzec0923デフォルトの名無しさん
2015/03/23(月) 01:09:45.43ID:pSjqqcPyWebが時代遅れ?になるころにはいよいよプログラマが時代遅れになるのか?
0924デフォルトの名無しさん
2015/03/23(月) 07:25:48.73ID:VVJhDQ34イベント関係が気に入らないが
0925デフォルトの名無しさん
2015/03/23(月) 07:31:33.34ID:39b0MZjdスマホやタブレットのアプリで盛り返してると言う奴がいるけど、
残念ながら業務システムでそれらを使う場合って実際ほとんどWebベースなんだよね
0926デフォルトの名無しさん
2015/03/23(月) 09:12:56.93ID:lLvMVgy/XamRin使ったらなおさら
0927デフォルトの名無しさん
2015/03/23(月) 12:17:23.51ID:39b0MZjdドカタにXAMLの教育からやるくらいならWeb系のフロントエンドやってる連中に投げたほうが
よほど安上がりだしまともなものができるだろ
ゴミみたいな単価に蟻のように群がってくるわ
0928デフォルトの名無しさん
2015/03/23(月) 12:24:53.33ID:Fed4+lLz0929デフォルトの名無しさん
2015/03/24(火) 10:21:48.79ID:SzAR1G+L処理はイベントドリブン型でもいいから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> 特殊な場合を除いて大部分のアプリはwebアプリに移行すると思う
パフォーマンスの問題が解決すれば、その勢いは加速すると思う。
『「ネイティブアプリかWebアプリか」の争いはいい加減やめにしよう』
http://readwrite.jp/archives/21539
0934デフォルトの名無しさん
2015/03/24(火) 20:07:45.01ID:LohqoBDVそんなの前世紀からあるホラ話。
まだ間に受けてるお人よしいるんだね。
0935デフォルトの名無しさん
2015/03/24(火) 21:24:27.31ID:I9d+0tlB0936デフォルトの名無しさん
2015/03/24(火) 21:56:59.07ID:KtD2xxv9え゛、Webアプリのほうが簡単なの?
0937デフォルトの名無しさん
2015/03/25(水) 00:52:29.02ID:rOLywoKBそのWebでどこでも動きますよってレベルはもうXamarinで可能。それで速い。作りやすい。
0938デフォルトの名無しさん
2015/03/25(水) 00:57:08.14ID:w567qPLi端末へのデプロイ不要でGUIも共通化できるWebと比べるのは筋違い
0939デフォルトの名無しさん
2015/03/25(水) 01:20:04.86ID:rOLywoKBFormsも知らないバカは10年ROMってろよ
0940デフォルトの名無しさん
2015/03/25(水) 07:21:03.48ID:bi42DHFl上等なギャグだね
0941デフォルトの名無しさん
2015/03/25(水) 07:25:12.72ID:w567qPLi0942デフォルトの名無しさん
2015/03/25(水) 10:24:08.71ID:DFQK2JiJ> そんなの前世紀からあるホラ話。
ということを真に受けて、時代から取り残されていけばいいよ。
0943デフォルトの名無しさん
2015/03/25(水) 19:19:05.20ID:UQSzKjlW実際、ネイティブアプリである必要性が急速に失われつつある
ただしネット接続環境が良好であればの話だが
0944デフォルトの名無しさん
2015/03/26(木) 07:39:42.04ID:vGJK9a/j企業だとLAN内で業務Webアプリを動かす場合が多いんだよ
0945デフォルトの名無しさん
2015/03/26(木) 08:13:56.87ID:FQTVCqe4って感じなんじゃねーの
ブッ
0946デフォルトの名無しさん
2015/03/26(木) 12:27:41.49ID:uV7qaf9uどれだけあるかなんて想像もつかないだろうな
0947デフォルトの名無しさん
2015/03/26(木) 13:37:33.16ID:JLW4ZZJf「インターネットでアクセスできないWebアプリ」てw
0948デフォルトの名無しさん
2015/03/26(木) 14:19:13.65ID:MHOnH925Wikipediaより:
> ウェブアプリケーション(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:SuVdMCRs0952デフォルトの名無しさん
2015/03/26(木) 15:40:19.26ID:ZAP9cAHT0953デフォルトの名無しさん
2015/03/26(木) 16:20:25.92ID:hd1hb7780954デフォルトの名無しさん
2015/03/26(木) 18:36:18.00ID:vGJK9a/jそう珍しいことではないと思うけどな
インターネット限定ならWeb屋とは呼べなくなる自称Web屋もいるだろう
0955デフォルトの名無しさん
2015/03/26(木) 18:40:49.07ID:hd1hb778多い日か?
0956デフォルトの名無しさん
2015/03/26(木) 22:56:25.89ID:H/S36mmFえーと、Xamarin.Formsの話だぞ?
0957デフォルトの名無しさん
2015/03/27(金) 15:10:08.52ID:QKVU8tuYApplication.UserAppDataPath ってどうやって参照するんですか?
Applicationのメンバに出てこないのでビルド通りません、、、
0958デフォルトの名無しさん
2015/03/27(金) 15:15:15.06ID:vGw/d/yj0959デフォルトの名無しさん
2015/03/27(金) 15:44:06.09ID:QKVU8tuYSystem.Windows までは出てくるんですが、Formsがメンバにいないんですよ
要は設定ファイルの格納先が分かればUserAppDataPathじゃ無くてもいいんですが、
ベタで書くのも芸が無いなあと思って試してます
0960デフォルトの名無しさん
2015/03/27(金) 15:53:23.49ID:vGw/d/yjプロジェクトのプロパティの参照な
0961デフォルトの名無しさん
2015/03/27(金) 15:57:14.84ID:JgPCIX8Rあと紐なしバンジーして死ね
0962デフォルトの名無しさん
2015/03/27(金) 16:03:42.00ID:QKVU8tuY申し訳ありません、ありがとうございました
バンジーしてきますのでご勘弁
0963デフォルトの名無しさん
2015/03/27(金) 16:39:08.77ID:qP3LeJZ70964デフォルトの名無しさん
2015/03/27(金) 17:06:47.22ID:FbXdxQFA0965デフォルトの名無しさん
2015/03/27(金) 22:40:59.49ID:gqYd1rwISystem.Environment.SpecialFolder.ApplicationDataで
0966デフォルトの名無しさん
2015/03/28(土) 09:10:05.82ID:cgKmHSA6普通に
GetFileSystemPath(Environment.SpecialFolder.ApplicationData);
の方がいいと思うけどな。
0967デフォルトの名無しさん
2015/03/28(土) 13:21:58.21ID:SSdad0diたとえば、以下のような2種類のウィンドウがあったとして、TextBlockとListBoxしか違わないとします。
共通している部分はなるべく一回で済むようにしたいです。どうしたらいいでしょうか?
<Window>
<Grid>
<TextBox/>
<TextBlock/> ここが違う
</Grid>
</Window>
<Window>
<Grid>
<TextBox/>
<ListBox/> ここが違う
</Grid>
</Window>
0968デフォルトの名無しさん
2015/03/28(土) 15:30:51.05ID:gB4Elb0AコレのContent に動的にバインド。ある程度グループがあるならUserControl をバインド
それかDataTemplate で差し替えやる手もあるか
使ったことないけど。こんなのあったなぁ…と
0969デフォルトの名無しさん
2015/03/30(月) 14:24:54.57ID:gCTS3FIY0970デフォルトの名無しさん
2015/03/30(月) 21:49:58.49ID:KMIfYLWYButtonの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:Wei1pJtt0973デフォルトの名無しさん
2015/03/31(火) 23:19:05.59ID:b0cwTXAoListboxにファイルパスなどの情報を保持するクラス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:yvrxgcRMListBoxの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:L2cXUhXgClass 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「プロジェクト名.Properties」はusingされてるか?
プロジェクトプロパティ→設定でアクセス範囲が本当にpublicになっているか?
0978デフォルトの名無しさん
2015/04/01(水) 17:26:16.04ID:L2cXUhXgありがとうございます
ヒントを頼りに色々試した結果、
Public Shared appsettings As New Settings
~~~~~~~~
と宣言したら参照できました
0979デフォルトの名無しさん
2015/04/02(木) 13:22:10.42ID:OmvXhw4Lソレが何なのか、ちゃんと理解しろよ。webとかでやらかすぞ
0980デフォルトの名無しさん
2015/04/02(木) 20:35:43.06ID:FVK2pQy4今までありがとう
0981デフォルトの名無しさん
2015/04/03(金) 11:41:49.41ID:TMrMNhLUSystem.ComponentModel.DataAnnotationsの説明を見ると
この名前空間はASP用っぽい説明文になっています。
ValidationAttributeはWPFでは使わないほうがいいのでしょうか?
使用する場合、System.ComponentModel.DataAnnotationsはMVVMの
Mで参照してもよいものなのでしょうか?
0982デフォルトの名無しさん
2015/04/03(金) 18:52:10.18ID:YM898wsK0983デフォルトの名無しさん
2015/04/03(金) 19:50:46.67ID:JflSpfIvWPFとMVVMってほんとゴミだな!!!
って思う頻度を多少減らしてくれる
0984デフォルトの名無しさん
2015/04/03(金) 21:47:00.55ID:FAm5ZfNKIDataErrorInfoとValidationで検証を実装する系のヤツは普通に使われてる気がする
というか、Model層の話だったらWPF関係ないだろ
レス数が950を超えています。1000を超えると書き込みができなくなります。