読者です 読者をやめる 読者になる 読者になる

Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

WPF

業務系アプリでWPFを使うメリットがなかった件

非常によくわかるお話だった。特にここ。kiwosuke.hatenablog.com MVVMの原則に従って一生懸命、コードビハインドからコードを追い出したところでほとんどメリットが感じられません。 業務系のアプリはデスクトップのテンキーをベースに操作ができることを求…

WPFのXPSDocumentの横向き印字

Programmer's Report: WPF で横長(Landscape)印刷をするを参考にしつつ。こんなコードで横向き出来ました。 var printQueue = new LocalPrintServer().GetPrintQueue( "YOUR PRINTER NAME"); PrintTicket ticket = printQueue.DefaultPrintTicket; ticket.Pa…

Windowsアプリの自動テストはFriendlyが良さげ

WPFでデスクトップアプリを作りまして、画面操作のテストが非常にめんどくさい。Seleniumに該当するものが無いかを簡単に調べてみた。大きく分けてこの3つがあるようだ。 UIAutomation Winium Friendly UIAutomationというのはMSが標準で用意している画面操…

DataGridのContextMenuでUIElementが取得できない問題

stackoverflow.com The ContextMenu isn't in the same part of the Visual Tree so that's why you can't use ElementName etc. to reference the DataGrid. You'll have to use PlacementTarget of the ContextMenu instead. WPFのXAMLのビジュアルツリー…

WPFで販売管理システムを作るぞ

WPF

弊社システムをご覧になった同業他社の社長さんが、非常に気に入って下さった。ずっとリニューアルしたいと思って時間を見つけてはちょいちょい作っていたリニューアル版を今月末に仕上げ、来年に導入予定です。上のボタン群の色味を悩んでいるんだけど、ど…

WPFのComboBoxに空白値を設定する方法

WPF

バインドしてる時にコンボボックスで空白の初期値を設定するには、SelectedItemの値をNullにすると勝手に追加されるようです。 <ComboBox MinWidth="50" ItemsSource="{Binding SaleTypeList}" SelectedItem="{Binding SaleType}" DisplayMemberPath="Name"/> SaleTypeListはこんな感じのListです。 SaleTypeList.Add(new{ Name = "掛売", Value = "0" }); SaleTypeList.Add(new{ Name = </combobox>…

WPFにおける印刷方法

WPF

WPFを帳票フレームワークとして使う - @kotyのブログにあるように、FixDocumentを作ってそこにPageをAddしてXPSに渡すっていう方法がある。これがとユーザーコントロールで帳票をデザイン出来るので、メリットが凄く大きい。が、実際印刷してみたらかなり重…

ViewModelのコマンドでViewを操作する方法

WPF

一番シンプルなのは、ここに記載されているこの方法でした。 Command実行時に、CommandParameterとしてWindowのインスタンスをViewModelへ 渡してあげれば良いのだ。目から鱗であった。ViewのXamlにおいて、View(Windowオブジェクト)のNameにMyWindowを設…

ObservableCollectionの中身が変更されたことを検知する方法

WPF

c#のDataBindingで必ずと言っていいほど使われる、ObservableCollectionというやつ。こいつはコレクション自体の変更を検知する仕組みはあるけど、そのコレクションに格納されているオブジェクトの変更までは検知されない。色々とStackOverFlowとかStackOver…

WPF DataGridで編集中のセルの値を拾う方法を考える

WindowsFormのDataGridViewだと、こんな感じで拾える。DataGridViewでセルが編集中の時にキーイベントを捕捉する: .NET Tips: C#, VB.NETにあるように、EditingControlShowingというイベントハンドラがあって、その中でDataGridTextBoxColumnの内部にあるTex…

WPFでユーザーコントロールからViewModelを参照する方法

一番簡単な方法はApp.xamlにViewModelをResource定義することです。これで同じプロジェクト内から触れます。すげー簡単でしょw

WPF DataGrid VS Windows Form DataGridView

おおまかなアーキテクチャ設計は出来てきて、MVVMに乗っ取った仕組みでうまいことやろうとしています。で、業務系アプリはグリッド入力がUIの8割を占めるんですけど、組み方がWPFとWindows Formでは結構違うみたい。 セル内イベント捕捉 Windows Formの場合…

もう僕はWindowsフォームに戻れない

WPF(・∀・)イイネ!!って思う所書きます。 データバインディングすげー楽 WPFをやってみてこりゃいいと思ったのが、データバインディングの柔軟性でした。「ある値が入るとこっちの値が変わる」という依存性のあるデータの表示処理を、コードビハインド無しで出…

WPFのResourceについて簡単にまとめてみた

WPF

WPF 4 Unleashed作者: Adam Nathan出版社/メーカー: Sams発売日: 2010/06/04メディア: ペーパーバック購入: 3人 クリック: 13回この商品を含むブログ (4件) を見る上記を参考にしつつ。画像とかのバイナリデータをプロジェクト内に含み入れる時に、リソース…

WPFのデータバインディング学習メモ

WPF

WPF4 unleashedより、学んだことをメモ。 コードでバインドするパターン //FtreeはTreeViewで、CurrentFolderはTextBlock Binding b = new Binding(); b.Source = Ftree; b.Path = new PropertyPath("SelectedItem.Header"); CurrentFolder.SetBinding(TextB…

WPFのデータバインディングの基礎を学ぶ

現在弊社内で動いている販売管理システムは、使い慣れたWindowsフォームで作りました。最たる理由はドットインパクトプリンタに印字命令を出せることで、ブラウザではその機能がないので、ネイティブなライブラリということで.NETを採用した、という感じ。で…