1 名前:デフォルトの名無しさん mailto:sage [2016/06/29(水) 23:45:15.36 ID:EZjVZgG6.net] ■Visual Studio 2013 Community & Express(無償の統合開発環境)等はこちら www.visualstudio.com/downloads/ ■コードを貼る場合はこちら ideone.com/ ■前スレ C#, C♯, C#相談室 Part88 [転載禁止]©2ch.net peace.2ch.net/test/read.cgi/tech/1437808445/ C#, C♯, C#相談室 Part89 peace.2ch.net/test/read.cgi/tech/1443271409/ C#, C♯, C#相談室 Part90 echo.2ch.net/test/read.cgi/tech/1455160063/ ■次スレは>>970 が建てる事。 建てられない場合は他を指定する事。
116 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 01:16:39.44 ID:Co+DcSGG.net] AndroidStudio使っててもXMLは出来るだけいじりたくないw
117 名前:デフォルトの名無しさん [2016/11/10(木) 01:52:09.10 ID:aHkFnxeg.net] >102 ん? それは考え方に矛盾があるだろ。UIを切り離すのが目的
118 名前:ネら、切り口がシンプルで 綺麗なほうがいい。 例えばスクロールバーと連動して値を表示する場合なんてUI内でまとめて片づけて しまったほうがいい。 ほしいの値だけで、処理側からしたらくだらないイベントなんて見えないほうがいい。 そっちでまとめてやってほしい。 [] [ここ壊れてます]
119 名前:デフォルトの名無しさん [2016/11/10(木) 01:52:28.80 ID:aHkFnxeg.net] >XAMLを批判してる奴ってほんとにXAMLを理解してんの? 理解できないなから文句を言ってるんだよ。機械が簡単に理解できるからって 人間にそれを押しつけるのは間違い。 XAMLってのは単なるテキスト文書じゃない。プログラム全体から複雑なUIを切り離して 表現するという目的がある。複雑なUIは手打ちで入力するようなものじゃない。 UI={動作、表現、パラメータ、、、、}+窓口 プログラム=>窓口 UIの窓口さんにいえば{、、、}なかはわからなくても大体処理できる。そういう関係 なわけよ。窓口が美人でテキパキしてないとダメだろ。 時々あるんだが、大企業の開発部に電話してるのに田舎のおばちゃんみたいなのが 窓口で 「はあ、田中さんは今日はおらんよ、どっかに出張するからって鞄を下げて出て行った よ」 みたいな感じな。 XAMLの美人の窓口さんはどこ? ねえ
120 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 02:08:02.40 ID:CCFq8Qep.net] >>111 批判って言うより、ほとんどいちゃもんだけどな。
121 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 02:16:50.13 ID:lTw5QLQW.net] 長文マンは無駄に下手な比喩ばっか使って文意がわかりづらいな
122 名前:デフォルトの名無しさん [2016/11/10(木) 02:20:15.15 ID:aHkFnxeg.net] じゃあ具体的に書いたろか textBox1.Text = "Hello, World!" これでいいのに public class Data { public string TextHelloWorld { get { return "Hello, World!"; } } } example.xaml <TextBox Text="{Binding Path=TextHelloWorld}" /> これだもんな。W XAMLがデータを取りに行ってくれる。一見便利だが、いちいち細かい指示を出して 説明してやらんと分からんやつだから、教えるほうが手間。自分でHello!!て 書いたほうがなんぼかまし。 あれだ、パラダイムシフトだなんだって言ってるが、シフトダウンだよな。
123 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 02:26:27.64 ID:wdbpo9Rt.net] それXAML側でName="textBox1"と定義してやれば、this.textBox1.Text = "Hello, World!"で済むだろ
124 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 02:30:19.81 ID:YdauEkQ9.net] WPFとFormを同じXAMLから生成出来ればもっと使い道もあるんだけどな
125 名前:デフォルトの名無しさん [2016/11/10(木) 02:31:25.72 ID:aHkFnxeg.net] 比喩だとわからんか? 窓口ってのは会社の顔だよ。XAMLの顔はというとBindingだ。ここが窓ぐち。 こいつが田舎もんだから、、、、W
126 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 02:33:21.09 ID:4pFcdHJl.net] >>122 でもそれってXAML関係ないじゃん なんでさっきXAMLディスってたの?
127 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 02:33:22.15 ID:wdbpo9Rt.net] わざとミスしてレスが欲しいのか自分の主張を通したいのかどっちなのよ
128 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 02:55:22.89 ID:bu4ikKWV.net] >>119 ぇ、それだけじゃXAMLは取りに行かないよ。 Dataクラスからの通知機構は無いの?
129 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 03:08:35.71 ID:zCCtWAZL.net] >>115 ,116 ?例が適当すぎて言いたいことがわからん スクロールバーと連動して値を表示するのはバインディングで済むからUIのイベントなんて使わないだろ UIを切り離すんじゃなくて、VとVMを切り離すのが目的
130 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 03:17:22.84 ID:zCCtWAZL.net] >>119 バインディングする意味のないソースを出されても さっき言ったスクロールバーとその値を表示するテキストボックスの例を見ればいいんじゃない? バインディングを使わないとイベントを利用してそれぞれの値を相互に書き換える必要があって面倒とかそういうの
131 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 06:37:59.52 ID:B4277xpo.net] XAMLを批判したいけどちゃんと理解してないから筋の通った批判ができない悲しさ
132 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 07:36:13.26 ID:o8sMendu.net] >>126 例えばGridSplitter付きのパネルの開閉をアニメ付きでヤるとしたら、xamlじゃとても書けないけど VMにやらせる仕事じゃないって場合とか、BringToViewなんかもViewで完結させるべき仕事だね ビヘイビアやトリガーアクション使ってもいいけど無理やり突っ込むこともない
133 名前:デフォルトの名無しさん [2016/11/10(木) 07:51:19.71 ID:aHkFnxeg.net] <TextBox Name="Text1" Height="23" Width="70" Margin="5" HorizontalAlignment="Left" VerticalAlignment="Top" Text="Button" /> <Button Name="btn1" Content="{Binding Text1.Text}" Height="23" Width="70" Margin="5,35,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" Click="Button_Click"/> ちっともBindingせんがーーー。W エラーもでんし。
134 名前:デフォルトの名無しさん [2016/11/10(木) 07:53:05.39 ID:aHkFnxeg.net] >128 このバインドの書き方のどこが筋が通ってないんや?
135 名前:デフォルトの名無しさん [2016/11/10(木) 08:11:55.57 ID:aHkFnxeg.net] this.DataContext =this; そうだこれがぬけてると検索場所が特定できんのだ。 私は私ですから私を検索してくだされ。 えっ、これでもやっぱりだめ。
136 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 08:24:57.67 ID:o8sMendu.net] 彼の言うXamlの欠点とやらは、マークアップ言語ならどれでも持っているもので xamlはhtmlと比べたら格段に進歩した代物だ まあこんなケチを付けているんだから htmlなんて触ったことない化石プログラマーなんだろうね
137 名前:デフォルトの名無しさん [2016/11/10(木) 08:57:47.72 ID:aHkFnxeg.net] マークアップの欠点とBindingの欠点と、、、と幾つかの欠点を併せ持っているという ところが味噌。
138 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 09:16:40.69 ID:o8sMendu.net] 可読性を問題にしていたはずが、ロジックとマークアップが混在するhtmlを批判せずに それを解決する方法のBindingにケチをつける 化石の末期だなw
139 名前:デフォルトの名無しさん [2016/11/10(木) 09:43:37.91 ID:aHkFnxeg.net] <Window.Resources> <SolidColorBrush x:Key="MyBrush" Color="Blue"/> </Window.Resources> ボタンのインスタンスIDはNameでリソースの場合hx:Keyかよ。笑かすな。W
140 名前:デフォルトの名無しさん [2016/11/10(木) 10:15:41.71 ID:aHkFnxeg.net] 物事を識別するには名前が肝心である。名前は適切で少ない方がいい。 大本の識別機構の混乱 XAMLコード中でIDictionaryインターフェイスを実装する要素に子要素を追加する際には x:Key 属性の指定が必須 ただし、Styleクラス(System.Windows名前空間)のように、クラスにDictionaryKeyPropertyAttributeを付与して、(x:Key 属性の)代替となるプロパティ(Styleクラスの場合はTargetTypeプロパティ)を設定しているクラスの場合には、x:Key属性 を省略可能。 Styleクラスでは、x:Key 属性の代替としてTargetTypeプロパティを利用している。 高々リソースに名前振るだけで、、、ぷっ。
141 名前:デフォルトの名無しさん [2016/11/10(木) 10:16:51.48 ID:aHkFnxeg.net] >135 無批判に受け入れるのはよくない。「飼いならされて、食用にされる家畜」だよ。 In the world's broad field of battle, In the bivouac of Life, Be not like dumb, driven cattle ! Be a hero in the strife !
142 名前:デフォルトの名無しさん [2016/11/10(木) 10:29:24.03 ID:aHkFnxeg.net] @ITデータバインディングを理解する。 www.atmarkit.co.jp/ait/articles/1010/08/news123.html 1ページ何を言ってるのか全然わからん。突っ込みどころが多すぎて、突っ込む気にもならん。 それとも誤字脱字が多いのかな?なんか説明が間違ってるだろ。論理がつながっていない。 うちのばあちゃんにでもわかるように説明してみろや。 {Binding X} という書き方は
143 名前:、{Binding Path=X} と同じ意味である。 藁、「同じ意味である」って、そんなら最初から一つに絞っておけよ。 {Binding Path=X} いらんだろ。 BindingにPath以外のプロパティはないんだろ!! 最初からBindingでいいだろ パスもプロパティもいらんわ。 [] [ここ壊れてます]
144 名前:デフォルトの名無しさん [2016/11/10(木) 10:43:36.65 ID:aHkFnxeg.net] 外部リソースを取り込むには、<ResourceDictionary>要素にSource属性を付ける <Window.Resources> <ResourceDictionary Source="Styles.xaml"/> </Window.Resources> includeにしろよな。常識だろ。
145 名前:デフォルトの名無しさん [2016/11/10(木) 11:38:19.49 ID:ElAt+S/3.net] 質問です フォームにプロパティグリッドがあります プロパティグリッドの中でCtrl+Zを押したときに 普通はプロパティグリッドが持っているアンドゥが呼ばれますが これをフォームの独自のアンドゥ・メソッドを呼び出すようにしたいのですが、 どうすればいいですか?
146 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 12:03:59.07 ID:dRW/oH8h.net] >>141 思いつくのは、IMessageFilterを使ってWM_KEYDOWNでCtrl+Z拾ってやることかな 入力中のコントロールをControl.FromHandleで取れたら幸い
147 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 12:19:50.11 ID:CCFq8Qep.net] >>139 Pathは省略可能ってだけで、他にもプロパティあるし。 自分で張ったリンク先の2ページ目にも書いてあるだろ。
148 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 12:41:10.63 ID:lWSBQV9X.net] >>116 理解できない自分の頭を呪いな
149 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 12:59:35.96 ID:otGHoxmh.net] >>142 .NET1.1の頃からそんなのあったのか まったく知らなかったw しかし、IMessageFilterっていうかApplication.AddMessageFilterって結構恐ろしい仕組みだなw NativeWindowの方が安全な気がするんだけど
150 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 13:07:51.76 ID:ElAt+S/3.net] >>142 IMessageFilterでCtrl+Z拾ってできました ありがとうございます
151 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 14:50:01.95 ID:zCCtWAZL.net] >>139 結局、言われた指摘には何も返せず自分が理解できないのに適当に騒いでるだけじゃん C言語とかやったら配列があればポインタいらないじゃん!とか騒いでそう 省略可能な記述についても、html5とかの仕様を見たらhtmlとかbodyとかのタグいらないじゃん!とか叫びそう qiita.com/labocho/items/54fd70c73ced35c8ba49
152 名前:デフォルトの名無しさん [2016/11/10(木) 15:34:39.47 ID:aHkFnxeg.net] グダグダ言わずに、本質はどういうことかを捉えてどう説明できるかが問題やな。 Bindingの本質はというと要するにXamlのText="{Binding pName}" が意味するのは var bind = new Binding("pName") { Source = per }; text1.SetBinding(TextBox.TextProperty, bind); この二つの処理やないか。こいつを省略形で書いてるだけのことやろ。 チュートリアルでちゃんとこう言うように書けよな。そしたら3秒でわかるのに。 原辰。
153 名前:デフォルトの名無しさん [2016/11/10(木) 15:45:02.09 ID:aHkFnxeg.net] >143 1pが意味不明なので2pは見てなかった。 しかもインテリセンスが糞やからPath以外のプロパティがあるのかないのかわからん。 あくまでも 「BindingのプロパティはPath以外に無い」という前提、仮説の下でケチつけてる わけであって、それはチャンと明記している。W 一遍にりかいするんは難しい。 OneWay ソースからターゲットへの一方通行の同期になります。 TwoWay ソースとターゲットの双方向の同期になります。 OneWayToSource ターゲットからソースへの一方通行の同期になります。 OneTime ソースからターゲットへ初回の一度だけ同期されます。 モードがあるじゃないか。ならインテリセンス効かせろや。
154 名前:デフォルトの名無しさん [2016/11/10(木) 15:59:51.17 ID:aHkFnxeg.net] しかしBinding部分は顔だし肝なのにここを 正確に説明できん プロパティのインテリセンスも出せん とか、要するに自分の頭で考えたものじゃなくて、アッチコッチから借りてきた借り物をくっつけ て作り上げてるからだろ。ほんとうのところが正確に把握できてないんだよな。
155 名前:デフォルトの名無しさん [2016/11/10(木) 16:05:52.04 ID:aHkFnxeg.net] 内容が変更したときにはどうすんの? INotifyPropertyChangedインターフェースを実装 DependencyPropertyにしてしまう (インスタンスを生成したスレッドのみに限定される) 二つの方法がある。 PropertyChanged(this, new PropertyChangedEventArgs("pName”)); プロパティの変更でこれをやってやればいい。 なんやねん。結局イベント処理は書かなだめやないか? どんだけのメリットがあるか。W
156 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 16:10:01.34 ID:ApowNrKS.net] ラムダ君 LINQ君 XAML君←new
157 名前:デフォルトの名無しさん [2016/11/10(木) 16:33:44.59 ID:aHkFnxeg.net] 結局普及しないのは、関係者がちゃんと理解できていないのではないかな。 WEBを見たら、いろいろと説明が書いてるがどれも分りにくい。 C#でもVBでも1日も触っていたら、そこそこ使えるようになる。うろ覚えでも プログラムはできる。 WPFは説明が中途半端なので肝の部分がはっきりしない。 バインディングするんならイベントもちゃんとバインディングしないとだめだわ。 バインディングを間違っていても反応なしだしな。W エラーすらチェックできてない。 中途半端。
158 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 17:47:19.45 ID:riiUw9jl.net] >>152 命名のXAML君は、staticおじさんと同じ加齢臭がする
159 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 17:49:55.89 ID:ApowNrKS.net] ラムダとLINQも新しいことを拒絶するstaticおじさんだろうな
160 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 19:15:21.25 ID:pqjjw4yY.net] ラムダとLINQの時は使うなとか言っているやつがいたからな 拒絶するのは勝手だがいちいち布教しようとするのはウザイ
161 名前:デフォルトの名無しさん [2016/11/10(木) 19:22:39.57 ID:CGPJd07S.net] IEでニコ生みたいなストリーミング動画を見る際に、動画データがメモリーに展開する前にデータをリアルタイムでキャプチャするにはどうしたらいいでしょうか?
162 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 19:23:04.26 ID:ApowNrKS.net] C#のLINQは名前が他の言語と違うから一瞬迷う
163 名前:157 mailto:sage [2016/11/10(木) 19:31:03.19 ID:CGPJd07S.net] すみません分かりづらかったです。 IEで動画見ながら、IEがダウンロードしてるデータがストリーミング動画かどうかを判断して、動画ならIEの画面に表示される前に手を加えたいんです。
164 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 19:36:34.41 ID:hirKpSKv.net] ストリーミング中の動画に手を加えられるだけの技能があるのがすごい
165 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 20:17:59.57 ID:13nZCkn2.net] 使う価値があると思えば使えばいい 自分が使うのは無理だ参りましたと思ったら使わなければいい ただどちらを選択したかは別に他人に伝えなくていい
166 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 22:17:57.52 ID:c1KzPo7d.net] >>159 現実的な内容じゃない 基本的に無理 プロキシ―作っても動画をいじれる技量が君にあるとは思えない
167 名前:デフォルトの名無しさん mailto:sage [2016/11/10(木) 23:07:13.32 ID:pEVMYV3p.net] IEに、そういうプラグインがあるのか、探してみれば? IEは、オープンソース(OSS)じゃないから、改造するのは難しい。 OSSは、Firefox, Chromium, Safari Atom, Visual Studio Code, Electron は、Chromiumを使っている
168 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 03:04:38.37 ID:+gNs9Nbk.net] >>153 君はWPFどころかC#もよく理解できてないみたいだから、C#入門書からスタートするのがおすすめ
169 名前:デフォルトの名無しさん [2016/11/11(金) 04:07:56.66 ID:KgVthd+h.net] >157 ストリーミングをやるコンポーネントはあるだろ。そのデータ取り込み部分を バッファリングして中を加工すればいいだけだろ。W 画像認識をするのかな?
170 名前:デフォルトの名無しさん [2016/11/11(金) 07:05:40.26 ID:KgVthd+h.net] MVVMのICommandの使い方 ICommandを実装する理由はなんだ? ttp://www.atmarkit.co.jp/ait/articles/1011/09/news102_3.html これは読んでいくとよくまとまっているが、これだけでは難しすぎて 何を言ってるんかわからん。まるでMS。 そもそもICommandってなーに? 1. 処理の実行可否を状態として持つ、また状態の変更を通知 2. XAMLからメソッドの呼び出しはコードビハインドしか利用できないが、ICommandはバインドが利用でき別クラス(ViewModel)の処理を呼び出すことができる 中身は public interface ICommand { void Execute(object parameter); bool CanExecute(object parameter); event EventHandler CanExecuteChanged; }
171 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 07:07:03.74 ID:zUQAdwQM.net] イベントを再定義したかった人生だった(Command辞世の句)
172 名前:デフォルトの名無しさん [2016/11/11(金) 07:08:21.41 ID:KgVthd+h.net] いい例がある。これならわかる。これを逃してしてしまうと永久にわからないというほどの 優れた例を提示しておく。 優れた例 XAML <TextBox Text="{Binding Name}"/> <Button Content="実行" Command="{Binding ExecuteCommand}"/> <Label Content="{Binding Result}"/> ViewModel public DelegateCommand ExecuteCommand { get; } public MainWindowViewModel(){ ExecuteCommand = new DelegateCommand(() => Result = "登録OK", CanExecute); } private bool CanExecute(){ return !string.IsNullOrWhiteSpace(Name); } private string _name; public string Name{ get { return _name; } set { if (OnPropertyChanged(ref _name, value)) ExecuteCommand.RaiseCanExecuteChanged();} }
173 名前:デフォルトの名無しさん [2016/11/11(金) 07:09:49.57 ID:KgVthd+h.net] 肝:DelegateCommandをプロパティとして公開 コンストラクタの中でインスタンス化 () => Result = "登録OK" これはなんやねん? このアクションの書き方がわからんなーという人。 ラムダ式、、、初めて聞いた?
174 名前:デフォルトの名無しさん [2016/11/11(金) 07:13:06.18 ID:KgVthd+h.net] >君はWPFどころかC#もよく理解できてないみたいだから、C#入門書からスタートするのがおすすめ C#の方が難しいわ。まあでも何とか動かせる。WPFもBindingだけわかったので何とか 使えるレベルにはなったな。 問題はMVVMパターンだな。 MVVMじゃなくてM-VM-VかV-VM-Mでないとだめだよな。VVMMの方がいいと思う。
175 名前:デフォルトの名無しさん [2016/11/11(金) 07:23:51.87 ID:KgVthd+h.net] WPF攻略方法 1.Bindingの理解 2.「優れた例」でVVMM(またはMVVM)を理解する こっちはまあボチボチでもOK MSの文書は酷いがIT−PROの文書は体裁としてはよくまとまってはいるが説明が難しい。 第一に例が悪い。 第二に例にセンスがない。 第三に例の説明が下手。 単純化したシンプルな例で示さないと「俺はこんなにすごいんだぞ」みたいな 複雑な例では分からん。
176 名前:デフォルトの名無しさん [2016/11/11(金) 08:31:34.35 ID:KgVthd+h.net] MVVMのVMってわざわざ苦労してクラスをつくる必要あるんか? コードビハインドをVMにしたらいいんではないか? VとのIFはここで全部やった らいいと思うがな。 なんか必要性がいまいちわからんなー。
177 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 08:51:31.09 ID:qDFZLZyC.net] >>172 必要性が何なのかちゃんと調べたのかい?
178 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 09:40:30.93 ID:yIFyhkZ0.net] DIコンテナを導入すると、VMとMの2層構造のありがたみが実感できるんだけどな
179 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 09:43:11.94 ID:M2uBl8fv.net] >>169 ラムダ式は、Java, JS, Rubyなど、たいていの言語にある 例えば、独自の方法で、ソートしたい場合、先に比較関数を定義してから、 その関数を引数として、sort()に渡す 比較関数{ ここで定義する }; sort(比較関数); ところが、先に定義するのは面倒だから、sort()の引数の所で、 匿名(無名)関数として定義して、そのまま引数として渡せれば、簡単。 それの糖衣構文で、関数宣言も無くしたのが、ラムダ式 JSで書くと、 var a = ["Hydrogen", "Helium", "Lithium", "Beryl-lium"]; 匿名関数・ラムダ式 var a2 = a.map(function(s){ return s.length }); var a3 = a.map( s => s.length );
180 名前:デフォルトの名無しさん [2016/11/11(金) 13:38:45.67 ID:KgVthd+h.net] ラムダ式なんて高級なもが巷にあふれているとは初めてしった。めったに 使わないかな。 右も左もわからないのにアンドロイドアプリ(簡単なんだが、、)を作る 羽目になってしまった。しかしXamalinダウンロードしてみたらXamlに似ていて 驚いたわ。W WPFを勉強したかいがあった。これからバリバリつくってみる。
181 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 18:30:50.13 ID:ciOc6C5W.net] リスト操作系関数を一度使ってしまうともう戻れなくなる 例えば、List<string>をList<object>に変換したい時、 var hoge=list.map(x=>(object)x); だけで良い。foreachとかで書くより楽で読みやすい
182 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 18:55:28.67 ID:+ZeaIXfw.net] 名前を付けるのも馬鹿らしい単純な操作を表現するには やっぱりラムダ式が便利だと感じる
183 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 18:56:03.62 ID:qDFZLZyC.net] >>176 Xamlに似てる?勘違いしてんぞお前
184 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 18:57:11.76 ID:0OJ17qIg.net] >>177 List<T>.ComvertAll<TOutput>(Converter<T,TOutput>)ではダメなんか?
185 名前:デフォルトの名無しさん [2016/11/11(金) 19:20:11.62 ID:KgVthd+h.net] >179 Xamlそのものだわ。C++もC#のFormもXmalinUIもあって、3種類の開発環境がある。 まともに動けば凄いよ。W でもサンプルを動かしたまではすんなりいったんだが署名ができないとか、文字ばけ するとかどうも先が思いやられるのでxamalin やめてAndroid Studioにしようかと迷ってる。こっちはJavaだけど、、
186 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 19:58:04.56 ID:JZCe9Y2P.net] ラムダ厨うぜー
187 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:14:46.10 ID:tUVkv4AT.net] おはようラムダ君
188 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:20:02.48 ID:TqB+9XQ4.net] ランバダなら知ってる
189 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:27:50.64 ID:nfVHRfzR.net] >>181 c#初心者スレがあるからそっちにいった方がいい いい加減うっとおしい
190 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:46:50.11 ID:KgVthd+h.net] アッ、もうC#は卒業したんでこないよ。次はJAVAだ
191 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:49:06.76 ID:nfVHRfzR.net] それは良かった
192 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 21:09:36.24 ID:TOO7Y3Ld.net] ε-(´∀`*)ホッ
193 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 22:25:05.87 ID:+gNs9Nbk.net] >>181 XamarinはC#に相当慣れ親しんでるか、androidもiOSもそこそこやってる人がまとめて開発したいって場面以外ではまだおすすめできる状態じゃないかな まだ情報も少ないし、ラムダ式とかイベントとかの基本を自力で調べられない人には特に厳しいと思う
194 名前:デフォルトの名無しさん [2016/11/12(土) 20:58:13.68 ID:RWma0It4.net] 古いWindowsマシンでAndoroid開発しようとすると まずエミュレータが動かない WindowsPhoneが頑張ってくれてたら 引き続きVisualStudioで開発できたのに どうしてここまで差を付けられたのか MSってエリート揃いじゃないのかな?
195 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 21:30:04.79 ID:cIUa0gZx.net] 古いマシンで開発するやつの事なんかMSが面倒見る義理ねえよ
196 名前:デフォルトの名無しさん mailto:sage [2016/11/12(土) 23:10:09.55 ID:l9OhshgV.net] Win10で露骨にレガシーおじさん切り捨てに来たし 流石の聖人マイクロソフトもお荷物を抱えきれなくなってきたんだろうね
197 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 02:11:36.78 ID:PRCnkR8c.net] xamlが嫌いなら、全部コードで書けば良いのに。 Bindingが理解出来ないのなら、全部コードビハインドで書けば良いのに。
198 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 02:55:57.86 ID:+xp6lf8w.net] WPFって学習コストが高い(少なくとも俺にとっては)から 苦労して覚えたものを擁護したくなる気持ちはわからんでもないけど、 10年経ってもほとんど普及してないのにはやっぱりそれなりに理由があると思う。 パフォーマンスの問題は目をつぶるとしても、個人的には可読的じゃないのが大きいと思うんだよね。 書いてるときはいいんだけど、自分が書いたものであっても後から見るとどこで何をやってるのか ぱっと見て分からないし見当がつかない。 MVVM(正直これはあんまり理解してないんで誤解してるかもしれんが)にしてもそうだけど、 理念的に綺麗なのはわかるけど何か「これじゃない」感が強いというか、美しい理想の実現のための コストが大きすぎるというか...
199 名前:デフォルトの名無しさん [2016/11/13(日) 09:01:19.59 ID:sNDrzqcx.net] >194 綺麗なコードをみてみたら素晴らしさが一発でわかるとおもぞ。直感的にすぐに わかる。わからないようなのではだめだな。 だれか194のためにだせるかな?
200 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 09:45:56.53 ID:lb7gRuG3.net] >>194 同意。結局世の中に求められてるのは 大ヒットしたVB6レベルなんじゃないかねえ SOAPがはやらなかったのも一緒。
201 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 10:23:03.20 ID:67al7/78.net] VB6っぽくも書けるんだけどね。 ポトペタも出来るし。
202 名前:デフォルトの名無しさん [2016/11/13(日) 10:23:37.75 ID:sNDrzqcx.net] んーーーーんと考え込むよりもサクサクと作ったほうが手数は多くても生産性が 上がる。と考える人が殆どだから?
203 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 10:50:51.74 ID:lO2MkZMm.net] html知っていればxamlの可読性にケチを付けること無いと思うんだが 今時html触ったことない人なんだろうか?
204 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 11:12:37.23 ID:ZjdX2IN8.net] >>198 んーーーーんと考え込むよりもサクサクと作れるような案件ばかりだからだろ
205 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 11:39:53.10 ID:IKKUDTFw.net] >>194 そんな擁護とか色眼鏡で見ないでも、単純に学習コストが高いのが一番のネックだろう。
206 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 11:52:49.11 ID:fBLfWj6L.net] どこで何をやってるかわからない、ってのが不思議だな 振るまいを独立にモデリングした上で、UIのどことモデルのどこを対応付けるか、を明確化するのがMVVMであり、バインディングの利点じゃん? 従来のフォーム・イベントゴリ押し的なやり方だとこれが曖昧化してしまうから、どこで何をやってるかがわからなくなる MVVMでわけわからなくなる人はなにか根本的に間違ったことやってるんじゃないかな?
207 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 12:15:54.37 ID:IKKUDTFw.net] >>202 慣れてないだけだと思う >>194 MVVMは高コストって主張も分かる。 単純な案件にはオーバースペックだし、Formsでも十分。
208 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 14:15:44.38 ID:67al7/78.net] こうして人は老いて逝くのかな。
209 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 15:30:42.14 ID:zWTpia8y.net] 「フロントエンド界隈」が、声だけでかくて市場としては滅茶苦茶小さいのにに似てる
210 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 19:32:23.00 ID:wHFHc9ra.net] フロントエンドプロセッサ
211 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 19:51:43.67 ID:6IaE8voh.net] MVVMはOOPと相性悪いよな 間違った変更は拒絶して例外を投げるのが基本のOOP 間違った変更を一時的に受け入れて(そのかわりエラーを状態の一部として持つ)コミット時に不変条件を満たせば良いMVVM Formsなら例外をキャッチしてメッセージを出して入力を戻すだけでいいからOOP的に正しいモデルをそのまま再利用できる 要するにビューがドメインモデルについてよく知らなくてもビジネスルール的に正しい状態に保つことができる MVVMだとビュー及びビューモデルがビジネスルール的に正しいか正しくないかということを知っていなければならない それはビューやビューモデルではなくドメインモデルが管理すべき情報でしょ
212 名前:デフォルトの名無しさん mailto:sage [2016/11/13(日) 22:40:30.15 ID:67al7/78.net] レイヤーが違うと思うけど。 難しいから全部フラットで良いよ。
213 名前:デフォルトの名無しさん mailto:sage [2016/11/14(月) 17:11:40.86 ID:iSq4NCna.net] var dic1 = new Dictionary<string, string>() { { "key", "value" } }; var dic2 = new Dictionary<string, string> { { "key", "value" } }; どちらでも動くようなのですが、カッコは付けるほうが良いですか?
214 名前:デフォルトの名無しさん mailto:sage [2016/11/14(月) 19:10:02.84 ID:xSfNgSMs.net] >>209 お好きな方で。 今なら {["key"] = "value"} の方が解りやすいかも。
215 名前:デフォルトの名無しさん mailto:sage [2016/11/14(月) 22:10:40.45 ID:p26anzny.net] テキストボックスの入力欄A, B, Cがある A, Bは自由入力欄、CはA * Bを出力する読み取り専用(A, Bが変化したら即座に再計算される) A, Bに数値と解釈できない文字列(decimalに変換できない文字列)が入力された場合、即座にERRVALという文字列に置き換える Cが計算不能な場合、ERRVALという文字列に置き換える このような画面をWPFで作成したいのですがViewModelとxamlはどのように書けばいいでしょうか?
216 名前:デフォルトの名無しさん mailto:sage [2016/11/14(月) 22:57:37.38 ID:2SylIT9P.net] それだけ決まっててむしろどこに悩んでるのさ