なべひろBlog

プログラミングをメインに仕事に関するアレコレを発信しています。

WPF

PrismのUserControlを動的に配置する

はじめに かなり前にWinFormsでカスタムコントロールを動的に生成し任意の場所に配置するアプリを作りました。 目的は部屋にある機械の状態監視です。 設置された機械と同じレイアウトの画面なら作業者はどの機械かの判断が簡単にできます。 機械は増えたり…

Prismで複数のページを持ったアプリを作ってみる

はしめに 私が作るアプリケーションはメイン画面と設定画面など複数の画面で構成されるのがほとんどです。 以前記事にしたIDialogServiceを使って設定ダイアログを出してもいいですが、手段は複数持っておき状況に合わせて使い分けしたいと思い、WinFormsで…

WPFでボタンが押された時の処理が終わるまで簡単にボタンを押せないようにする

存在は知ってましたが他に優先順位の高い案件が多かったので後回しになってました。 結果から言えばもっと早くやるべきでしたね(汗 簡単に言えばボタンを押して処理が終わるまでボタンを押せないようにするのが楽にできます。 私のような装置系は特にボタン…

Prism使ったWPFでLivetCask.Messagingを使ってみる

ViewModelから使用者にメッセージを出したい時ってのは結構あります。 普通にMessageBox.Showの記述をすればメッセージは表示されますし、何か支障があるか?と言われれば何もありません。 ViewModelでViewを操作するなんて云々と巷では言われており、確かに…

Prismを使ったWPFアプリケーションで多重起動を抑制する

多重起動が問題になるケースはごくまれですが、利用者が気づかず複数開いたウィンドウで「ソフトを終了したのに起動している!」といったプチパニックを起こさないためにも多重起動は対処した方がいいと思います。 多重起動が不具合だと勘違いされ呼ばれる方…

MVVMなWPFアプリでDataGridの行と列情報を取得してみる

コレ、検索してもなかなか良い感じの情報にヒットしないんですよね。 てな事で検索情報とプロパティを眺めながら試してみました。 データがBindingされていればセル内の編集された値は反映できるので行とか列の情報なんてあまり必要としません。 今回行と列…

WPFアプリのImageにファイルを掴ませないようにする

前回MVVMなWPFアプリでImageにドラッグ&ドロップをやる手段を書きましたが、あの方法には困った問題が1つあります。 それは表示していた(している)ファイルをアプリケーションが掴んでいるのでファイルの削除ができません。 表示されてなければそのうち離し…

MVVMなWPFアプリケーションでドラッグ&ドロップをしてみる

まあ、検索すれば幾つかヒットするネタではありますが、ドンピシャでヒットしなかったので検証してみます。 構成は.NET Core3.1なWPFアプリでPrismとReactivePropertyを使っています。 やっている事はImageにドラッグ&ドロップされたJPGファイルを表示するだ…

.NET Core 3.1で作ったWPFアプリでPostgreSQLへEntityFrameworkを使ってアクセスしてみる

WinFormsではEntityFramwworkを使ってPostgreSQLへアクセスした実績はありますが、WPFましてや.NET Coreでは初めてなのできちんと動作できるか検証してみます。 まずはNuGetで「Npgsql.EntityFrameworkCore.PostgreSQL」をインストールします。 あと、何かと…

PrismのIDialogServiceを試してみる

MVVMなWPFでダイアログを出して見るべく色々検索してましたが、正直いって「何か面倒じゃね?」ってのが素直な感想でした。 もしかしたらダイアログを出す以外のコードが多くて、ぱっと見で私がきちんと見てないだけだったかもしれませんがWinFormsと比べる…

MVVMなWPFアプリケーションを.NET Coreに移植してみる

最近ようやくVisualStudio2019Proを導入しました。(私的には.NETCore3.0が出るまで不要だったので) そこで、いままでのWPFアプリを.NET Coreに移植は問題なくできるのか確認してみました。 対象となるのは以前制作したバーコードリーダー読み込みソフトです…

MVVMなWPFでDataGridの内容変更をキャッチする

編集可能なDataGridでユーザが編集したら、内容を即座にキャッチしたい事がよくあります。 内容が変更されたらXMLファイルに保存するとか、内容をチェックするとか使い道は色々あります。 MVVMなWPFアプリでReactivePropertyを使えばTextBoxなどはSubscribe…

MVVMなWPFアプリケーションでボタンを「押した」「離した」の情報をキャッチする

各種装置と連携したアプリを作るとよく出くわす機能としてボタンを押したらモータを回転させ、ボタンを離すまで回転は持続するという機能です。 Jog動作というヤツですね。 これもWinFormsなどでは特に深く考えなくてもボタンを押した時のイベントと離した時…

MVVMなWPFアプリケーションでバーコードリーダーの情報をキャッチする

私が所属している会社は機械要素部品を製造しています。 製品の情報をバーコードから参照してゴニョゴニョしますので、バーコードリーダーを使います。 バーコードリーダーは特殊な物ではなく殆どがキーボードと同じ振る舞いをします。 なのでPreviewKeyDown…