1read 100read
2013年02月プログラム29: WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part15 (243)
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▼
[Java]JBuilder5[Java] (783)
【消しゴム】MONOを使ってみるスレ4【じゃない】 (323)
文字コードの種類は何故複数あるのでしょうか? (346)
疑似乱数2 (439)
【SICP】計算機プログラムの構造と解釈 Part3 (545)
【上流社会】MSDNサブスクリプション総合【最先端】 (646)
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part15
- 1 :2013/02/03 〜 最終レス :2013/02/11
- ユーザーインターフェースシステム、Windows Presentation Frameworkについて微に入り語るスレ。
Visual Studio 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プログラミング Part14
http://toro.2ch.net/test/read.cgi/tech/1351322296/
関連スレ
Microsoft Silverlight その9
http://toro.2ch.net/test/read.cgi/tech/1321150267/
コードを貼る場合は以下のサイトの利用をお勧め。
run codeのチェックは外しておきましょう。
http://ideone.com/
- 2 :
- Part13 http://toro.2ch.net/test/read.cgi/tech/1334300003/
Part12 http://toro.2ch.net/test/read.cgi/tech/1324366825/
Part11 http://toro.2ch.net/test/read.cgi/tech/1320589318/
Part10 http://hibari.2ch.net/test/read.cgi/tech/1315648327/
Part9 http://hibari.2ch.net/test/read.cgi/tech/1301122694/
Part8 http://hibari.2ch.net/test/read.cgi/tech/1291554513/
Part7 http://hibari.2ch.net/test/read.cgi/tech/1282479113/
Part6 http://hibari.2ch.net/test/read.cgi/tech/1274423236/
Part5 http://pc12.2ch.net/test/read.cgi/tech/1261879110/
Part4 http://pc12.2ch.net/test/read.cgi/tech/1245384489/
Part3 http://pc12.2ch.net/test/read.cgi/tech/1231506876/
Part2 http://pc11.2ch.net/test/read.cgi/tech/1211453941/
Part1 http://pc11.2ch.net/test/read.cgi/tech/1162950198/
- 3 :
- 乙
- 4 :
- WPFでソケット通信を実行するときは、その手続きはどこに書くべきなんですかね?
MVVMだとDB接続はモデルに書くらしいんですが
今回はソケット通信でデータ受信するだけでなく、短い文言も送信しますし
相手方の応答に応じて、分岐とかあったりします
- 5 :
- View:なるべく書かない。画面遷移くらい。
ViewModel:画面で完結する処理を書く
Model:他はすべてここ
- 6 :
- VMに書け
以上
- 7 :
- 文言もモデル化できるとしてModelが妥当
- 8 :
- メッセージパッシングとかまさにそんなんだろ
- 9 :
- >>5
>>7
そうなんですか・・・
MVVMのモデルってでかいんですね
- 10 :
- モデルをDBのレコードとしか考えない
理由が無い
- 11 :
- 画面と処理を分離させるのがポイント
画面がいくら変わっても表示させたいデータが変わらない限りはModelは何も変えなくて良いように設計する
だから、データの見せ方に関わる動きはViewModelに書く
- 12 :
- なるほど
DBからDataTableを持ってくる処理はModelに書くとして、Viewではそれを行列反対にして表示する場合
その行列を組み替える処理はViewModelなんですかね?
- 13 :
- そんな感じ
- 14 :
- ありがとうございました。
- 15 :
- 言っとくけど、俺はWPFでアプリを作ったことがない
- 16 :
- VS2012でx64のWPF開発してるんですが、未だにデザイナはx64に対応しないの?
- 17 :
- 語弊がありそうな書き込み発見
- 18 :
- >>17
どれ?
WPFのプロの方、教えてください。
- 19 :
- WPFは終了しました
- 20 :
- Borderの中にコントロールを入れて、そのコントロールが水平・垂直に真ん中に配置されるプロパティーってないんですか?
なんかAndroidとかと比べて、コントロールに親子関係がないような
- 21 :
- 子要素のHorizontalAlignment/VerticalAlignment
- 22 :
- 3.5までしか触ってないんだけど、セパレータって縦置きできるようになった?
- 23 :
- 確認してないけどできない
- 24 :
- >>21
それをやっても、ボーダーに対して真ん中にならず、恐らくGridに対して真ん中になるです
- 25 :
- なんだか状況がおかしい気がする
- 26 :
- ほっといても真んR
gridに対して真ん中って表現もおかしい
だったらグリッドのマス目のコラムの幅変えてみて場所が変わるか?
- 27 :
- Borderと子コントロールの話だったのにどっからGridが出てきたのか
- 28 :
- すいません
勘違いしてました
全てのコントロールがGridに対して子になっていただけで、Border →StackPanel → 子コントロールと入れ子にしてから、
各子コントロールのプロパティーをいじらないといけなかったようです
ありがとうございました
- 29 :
- ずこ
- 30 :
- Settings.settingsってそのままModelとして使ってもいいんでしょうか
それともラップするクラスを作るべきでしょうか
- 31 :
- 別にそのままでいいよ
- 32 :
- 多角形のボタンってどうやって作るの?
- 33 :
- wpf 丸いボタンで検索して丸を多角形に変えればいい
- 34 :
- マルチスレッドって、Backgroudworkerあればあとは使わない感じ?
- 35 :
- NotificationWindowってどうやって使えばいいかわかりますか?
AndroidのToastみたいなポップアップを出してみたいです
- 36 :
- あんまBackgroundWorkerこそ使わなくなったな
専らTaskとDispatcher.Invokeで済ます
- 37 :
- WPFでBackgroudworker使ったことないな
- 38 :
- 非同期とかRxしかねーだろ
- 39 :
- WPFというより4.0ではいらない
- 40 :
- Rxはオワコン
非同期はasync,awaitの方が使いやすいし、
リアクティブプログラミング支援ライブラリとしても使いにくい。
- 41 :
- 他におすすめのライブラリあるのか?
- 42 :
- 必ずライブラリを使わないといけない強迫観念にでも落ちいってんのか?
- 43 :
- Rx自前とかアホか
- 44 :
- 今度はRx教ですか
MVVM教といいしなねーかな
殺したい
- 45 :
- LINQ教もあるの?
- 46 :
- たぶんあるね
- 47 :
- C#はC/C++の代用としてがっつりデスクトッププログラム書きたい奴と
JavaScriptとかPHPとかの代用としてWEBアプリとか書きたい奴がいて
お互いに相容れなそう
設計思想とか全然違っちゃうしな
- 48 :
- おいおい、MVVMは定義が曖昧すぎて理解不能で利便性の欠片も感じられないが、Rxは最高だろおい
- 49 :
- .NET Framework内にReactiveって単語が含まれたらRx戦争終戦で
ViewModelって単語が含まれたらMVVM戦争終戦にしよう
- 50 :
- LINQは別に宗教じゃなくてすでに言語の一部だろ
WPF用にプロパティ作るのもメソッド作るにも普通に使う
LINQなら一行でサクっと済むのが、
使わないと同じことするのに行数と文字数が何倍にもなるし。
- 51 :
- EF教ならまだ分かるがLINQ持ち出すあたりにわかすぎw
- 52 :
- >>40
リアクティブとして他に良いのが有るならぜひ教えてくれ。
RxとMVVMの組み合わせはすこぶる良い感じです(´・ω・`)
- 53 :
- まだLINQ敬遠してる土方もいるしな
- 54 :
- なんで新しいこと覚えられないのにWPFやろうと思うんだろう
- 55 :
- スレ違いは承知の上、ついでだから教えて欲しいんだがLINQをキチッと勉強するのにいい教材とか何かない?
上っ面程度のことは分かるんだけど、何ができて何ができないか、全体が把握できてない
用途は主にLINQ to Object
- 56 :
- 普通のSQL覚えればいいと思うよ
プログラミングやるなら何にでも使える必須知識
- 57 :
- 今時LINQ == クエリ構文って認識は古いってレベルじゃないと思うな
- 58 :
- Rxとの組み合わせがいいって
ReactivePropertyのこと?
- 59 :
- LINQはコレクションというかデータソースとでもいうのか
そういうのを簡潔に回すが全てじゃね?見つけるでもいいけど
- 60 :
- 簡単なもの(横1920のモニタでメソッド形式でなら1行で書ける程度レベル)ならメソッド形式がいい
でも複数のコレクションを結合させて混み入った条件つけて抽出したり、
メソッド式でも一行で収まらないくらい長くなる場合はクエリ式の方がいいよ
- 61 :
- 1920なら220文字は行けそうだ
- 62 :
- Update2 CTPのBlendより前からでてたPreviewの方ができがいいな・・・
- 63 :
- コードビハインドに書くのって画面遷移とコントロールの設定くらい?
- 64 :
- ソケット通信の受信結果をListBoxで表示するプログラムを書いています。
受信時間の昇順に並べて、
スクロールが最下部にある場合に新しいデータを受信したら、
スクロールを一番下に移動して最新データを表示させたいと考えています。
これをやるにはListBoxのテンプレートをいじらないといけない感じでしょうか
- 65 :
- >>64
なんかすげー似たようなアプリ作ってるな
俺もソケット通信の小さなアプリ、WPFで作っているわ
質問には答えられんがタイムリーなので
- 66 :
- テンプレートまったく関係なくない
- 67 :
- >>64
ListBox.ScrollIntoView じゃ駄目かい?
- 68 :
- >>65
案外同じアプリ作ってるかもしれませんね
>>66
ListBoxのScrollViewerいじってるんですがどうもうまく機能しないんですよね
それでテンプレートいじったらなんとか実現できないかと思った次第です
- 69 :
- >>67
常に下スクロールするのであればそれでよいと思います。
しかし、ユーザが上にスクロールしている場合には下スクロールさせたくないのです。
上のデータを見ているときにいきなり最下部にスクロールしてしまってはユーザが困惑してしまうと思うので。
まあ、素直に受信した降順に並べれば悩む必要ないんですが
- 70 :
- スクロールが一番下にあるときだけScrollIntoViewするBehaviorでも書けばいいんじゃないですかね
- 71 :
- そんな特殊な振る舞いをわざわざBehaviorにする意味は?
コードビハインドとなんも変わらんというか無駄に複雑になるだけ
- 72 :
- FormにしろWPFにしろリストボックスは遅いんだよ
これはWindowsそのもののGUIがプアだからどうしようもない
OS X最強なんだなこれが
- 73 :
- 勝手にUITableViewDataSourceでも使ってろ
- 74 :
- >>68
ScrollViewer がうまく機能しないっていうのは、どういう状況で何が機能しない?
- 75 :
- >>58
ん、そんな感じの。
ReactveUIでも良いかもね
- 76 :
- >>74
あまりうまく説明できないかもですが、
今はScrollViewerのScrollChangedが発生した時に、受信データ数が増えていて、スクロールバーの高さが以前のスクロールバーサイズ以上の値だった場合に最下部にスクロールするようにしているのですが、
これだと連続で複数のデータを受信した場合にきちんと最下部にスクロールしません。
- 77 :
- LivetでVMからのMessenger.RaiseでBringIntoViewするものを即席で作ってみたけど
ListBoxのItemsPanelがVirtualizingStackPanelだから
VMがコントロールと結びついてないと反応しねぇ。
こういう場合どうするんだろう。
- 78 :
- >>76
ListBox.UpdateLayout を使って強制的にレイアウトを再計算させるか、
Dispatcher.BeginInvoke(hoge, DispatcherPriority.Loaded) を使ってレイアウト計算後にスクロール処理を走らせてみては?
もしくは、ListBox.ItemContainerGenerator の StatusChanged イベントを待つとか。
最初の ScrollChanged が発生した段階では、後に受信したデータの ListBoxItem 要素が生成されてないのかも。
- 79 :
- WPF初心者なんですが、ユーザーコントロール作る場合は、元々のユーザーコントロールを相対配置して作らないといけないんですかね?
- 80 :
- XAMLからViewModelのメソッドってどうすれば呼べますか?
Click="ViewModel.Ok"とかでいけます?
- 81 :
- いけません
- 82 :
- >>78
即レスありがとうございます。
それだといけそうな気がしてきました。
改修長くなりそうなので結果報告は明日当りになると思います。
- 83 :
- >>81
じゃどうするんですか?
わざわざコードビハインドにViewModelのメソッドを呼ぶメソッドを作る感じ?
- 84 :
- >>80
これ読んで。
Model-View-ViewModel デザイン パターンによる WPF アプリケーション
http://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx
- 85 :
- いけません。じゃねーんだよw CallMethodActionくらい教えたれやw
- 86 :
- CallMethodActionなんてクソ冗長なもの使わなくても添付プロパティで
<Button CallMethod.EventName="Click" CallMethod.MethodName="Ok"/>
みたいに書けるようにするのは割と簡単にできる
添付プロパティの勉強には丁度いい
- 87 :
- ここでFWの上に自作FW載せる的な解はどうかと思うんだがw 確かに可能だし簡潔だが
86やるなら、MSのPasswordHelperあたり見たらいいぜ
- 88 :
- 76ですが、受信のたびにUpdateLayoutかけると一番したにスクロールさせることができました。
ただ、自分がListBox内に重い処理をしていることもあり、かなりもっさりしてしまいました。
なので無理に昇順にひょうじさせるのではなく、降順にならべてスクロールしない方向でいこうかと思います。
- 89 :
- >>84
そいつはWPF切った裏切り者だぞ
- 90 :
- 複数の画面で全く同じリストを選択させるリストボックスがあって、そのリストの値ををXAMLのResourcesDictionaryに書く場合は、
XAMLをコンパイルする段階で値が決まっている必要がありますか?
- 91 :
- ユーザーコントロールにしろ
- 92 :
- <StackPanel Orientation="Horizonal">
<RadioButton HorizontalAlignment="Center"/>
<RadioButton HorizontalAlignment="Center"/>
</StackPanel>
これでラジオボタンが水平方向に二つ、並ぶはずが左寄せです
原因はなんでしょうか
- 93 :
- 親がHorizontalなStackPanelであること
- 94 :
- すげーワラタ
- 95 :
- >>93
ありがとうございます。
確かにOrientatinはずしたら真ん中に寄りましたが、垂直方向に二つ連なりました
水平方向に、二つのラジオボタンを中央よりに配置させる方法はないんでしょうか?
AndroidのXMLだったらできたのですが・・天井
- 96 :
- StackPanelのHorizontalAlignmentをCenterにするとか
既定ではStretchなのでStackPanelの横幅は親コントロールと同じになる(マージンとか除く)
CenterにするとStackPanelの横幅は子コントロールを描画するのに十分な横幅だけになる
- 97 :
- >>95
Grid.ColumnDefinitions使ったほうがいいんじゃないの?
- 98 :
- やっぱりWPFはだめですね
- 99 :
- >>96-97
やってみます
ありがとうございました
- 100read 1read
- 1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼 ▲
WPF(XAML, XBAP, .NET4.0)GUIプログラミング Part15 (243)
【モダン推奨】Perlについての質問箱 50箱目 (405)
インテルC++コンパイラ9.0発表! (586)
Borland Developer Studio 2006 No.13 (279)
【独学】一人で勉強する奴らのスレ【自習】 (387)
HSPプログラムコンテスト総合【part 3】 (628)
--log9.info------------------
【エミュ鯖】N-Age Online【回帰その3】 (444)
Paperman チートスレ15 (200)
ラグナロク シリアルクレクレスレ (431)
【splax.net】おらおら学園 4殴目【Rカフェ】 (492)
ELSWORD エルソード ネタ保管庫01 (555)
【おみくじ】名前欄に!omikuji !dama【お年玉】 (614)
女神転生IMAGINE 垢クレクレスレ8 (226)
ブレイブリーデフォルトプレイングブレージュ解析 (480)
【FF11】 ProjectXI 【エミュ鯖】 (322)
【本家】サミー777タウンendlessブラック88【クレクレ厳禁】 (385)
機動戦士ガンダムオンライン クレクレスレ2 (719)
機動戦士ガンダムオンライン チートスレ (233)
【永久に】砂城鯖1170砦目【不滅】 (782)
ネトゲで恋をしてしまいました【77】 (553)
【Roエミュ】Twice Moon Tower【ローグ系】 2F (381)
アスガルドエミュ鯖スレ8 (285)
--log55.com------------------
【社会】 長野・上田のモスバーガーでO121
【速報】みなかみ町長が辞任表明
中国家電大手「TCL」が日本市場へ本格参入 65型4K HDR液晶TVが12万円!JBLサウンドバー装備、55型は8万円★2
【北海道地震】液状化は沢を埋めた造成地で発生か 札幌 清田区
【相模原市】駐車中の車からインパクトドライバーを盗んだとして、自称建設作業員の39歳男を逮捕
【ロボット】「鉄腕アトム」再現ロボ完成 10月より全国一斉発売
【朝日新聞】なぜ若者は安倍政権を支持しているのか? 今の政権でいいんですかの問い掛けに「いいでーす」★10
【船舶】レクサス初の豪華ヨット、発売へ 定員15人・客室三つ