Q124. XamDataGrid で絞り込み表示されてるレコードのみ抽出する
A.昨日の記事に引き続き、またまた XamDataGrid ネタです。
XamDataGrid で、フィルターで絞り込まれているレコードのみを抽出には、各レコードの IsDataRecord プロパティで判定し抽出する必要があります。
以下、サンプルコートです。
前回もそうでしたが、このサンプルでもメソッドのパラメータに XamDataGrid ではなく、XamDataGrid の上位クラスである DataPresenterBase を渡しています。実は DataPresenterBase クラスで XamDataGrid が提供する殆どの機能*1が定義されているためです。
*1:プロパティやメソッド等
Q123. XamDataGrid で表示されている内容をそのまま EXCEL に出力したい
A.くそ忙しかったため、かなりご無沙汰しておりましたが、久々の XamDataGrid ネタです。
XamDataGrid で表示されている内容を Excel に出力したい場合、DataPresenterExcelExporter クラスの Export もしくは ExportAsync メソッドを使うといいです。このメソッドの嬉しいところは、列の移動や並び替え、列の表示/非表示等、表示されてる状態のまま、Excel に出力してくれます。
以下、スニペットです。
参照設定は、通常のデータプレゼンター関連 (InfragisticsWPF4 ほにゃらら) に加え、以下の二つのアセンブリが必要になります。
InfragisticsWPF4.DataPresenter.ExcelExporter.v16.2
InfragisticsWPF4.Documents.Excel.v16.2
WPFについては、ここ数年かなり貯め込んだネタがあるので、随時公開していきたいと思います。しかしこれってホントは FAQ じゃなく TIPS というべきなんですよね。そのうち機会見て、今までの記事を再構築したいと考えてます。でもいつになるやら・・・
二種類の XamComboEditor
またまた備忘録です。Infragistics WPF で提供されてる XamComboEditor、これ実は二種類あるの知ってました?
Infragistics.Controls.Editors.XamComboEditor
と
Infragistics.Windows.Editors.XamComboEditor
です。
どういうコンセプトで二種類の XamComboEditor があるか判りませんが、複数選択やチェックボックス付きコンボを使おうとするなら、上の Controls.Editors.XamComboEditor を使う必要があります。
Windows(以下略)の方は XamDataGrid の ComboBoxField 等で使われるエディターなので、Controls(以下略)よりも若干軽量にできてるのかもしれませんね。纏めるとこうなります。
| 名前空間 | XAML名前空間 | 主な用途 |
| Infragistics.Controls.Editors | http://schemas.infragistics.com/xaml | UI用 複数選択やチェックボックス付が可能 |
| Infragistics.Windows.Editors | http://schemas.infragistics.com/xaml/wpf | XamDataGrid のセル用 |
Apllication が終了しているか判定する
ちょっと多忙につき更新さぼってましたが、久々のエントリ、ちょっとした備忘録です。
Application.Shutdown したのに処理が走っちゃうコードを見つけたので、Application の終了をどこで判定する調べてました。で、結論はこれ。
Shutdown 実行しても処理が続行するのは盲点だった・・・ただし Shutdown メソッド実行すると、Current プロパティがヌルになるので、これでシャットダウン中か判定できます。
Bash on Windows に構築したMySQL データベースに C# から接続してみた
前回のエントリでは、Bash on Windows に MySQLをインストールし動作するか試してみた訳ですが、今回のエントリでは Windows 側から C# プログラムで MySQL に接続し動作するか試してみます。
Bash on Windows で MySQL を動かしてみる

- 作者: 鈴木啓修,山田奈緒子
- 出版社/メーカー: 技術評論社
- 発売日: 2014/12/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (4件) を見る

- 作者: 當仲寛哲,斉藤博文,田代勝也,大岩元,新美勇一,高橋光輝,白羽玲子,後藤大地,法林浩之,すずきひろのぶ,熊野憲辰,御影けい,松浦智之,水間丈博,桑原滝弥,濱口誠一,USP研究所,ジーズバンク
- 出版社/メーカー: USP研究所
- 発売日: 2016/06/25
- メディア: 雑誌
- この商品を含むブログ (1件) を見る
コマンドプロンプトから Bash on Windows に接続し MySQL を起動
Bash on Windows & MySQL の情報って思ったより少ないですね。わたしの頭では Bash on Windows にインストールした MySQL に Windows 側から接続できないと思ってましたが、完全誤解してました。NaviCat の評価版インストールして Localhost に接続したら、しっかりテーブルにアクセスできるじゃありませんかw

またコマンドプロンプト起動して bash と打ち込めば、コマンドプロンプトから bash を操作できることも判ってきました。これは楽しいw

というわけで、これ以降の操作はコマンドプロンプトで行います。
新規ユーザー追加
C# から MySQL に ROOT で接続するのって、仮に Localhost であってもあまり気分がいいものではありません。よって、新規ユーザーを追加します。
コマンドプロンプトを起動し、bash で Bash on Windows に移動します。
> bash
Bash on Windows で MySQL を動かしてみる
いま Windows が熱いですね!
いや正確には Windows 10 Insider Preview で、Windowsj上で Linux が動くようになり、OSSやインフラ系のエンジニアさん達に俄然注目浴びてるわけですが、MySQLユーザーの私も、ちょうど SoftwareDesign 6月号の bash 大特集と MySQL の特集記事読んでるうち、
「むむ?これはもしかして Bash on Windows で MySQL を操作せよということではないか?!」
と、悪い心がむくむく湧いてきてしまったので、早速試してみることにいたしました。
![ソフトウェアデザイン 2016年 06 月号 [雑誌] ソフトウェアデザイン 2016年 06 月号 [雑誌]](https://images-fe.ssl-images-amazon.com/images/I/51nkkBejIDL._SL160_.jpg)
- 出版社/メーカー: 技術評論社
- 発売日: 2016/05/18
- メディア: 雑誌
- この商品を含むブログ (2件) を見る
Bash on Windows を有効化する
よいこのみんなはとっくに Bash on Windows を有効化してると思うので、この辺りは割愛させて頂きます。まだの方は、以下の記事など参考に、ぜひ茨の道に足を踏み入れてください。
Bash on Ubuntu on Windowsをインストールしてみる(Windows 10 build 14316)
なお Insider Preview はあくまで最新機能の評価版のため、想定外の事態に遭遇することがたびたびありますが、それも致し方ないと太平洋のごとき大らかな心を持ち、Microsoft にガンガンフィードバックを送ってやりませうw
MySQL サーバーをインストールする
次は MySQL のインストールです。SoftwareDesign 6月号の記事を参考に、最新版 MySQL5.7 をインストールしてみました。
スタートメニューから「Bash on Ubuntu on Windows」を探し、クリックして bash を起動します。wget コマンドで、で、MySQL の公式サイトから apt リポジトリの最新バージョンをダウンロードします。ちなみに以下のリポジトリは 2016/06/22 現在のものです。最新のリポジトリは https://dev.mysql.com/downloads/repo/apt/ で調べてください。
wget https://dev.mysql.com/get/mysql-apt-config_0.7.3-1_all.deb
高DPI環境における Windows Forms アプリ終了のお知らせ
ここ最近、私が携わっているソフトを Surface Pro 4 で使いたいというお客様が増えてまいりました。
そのソフトは「クラウド型なのでデスクトップでもノートでもどこでも使える」というのが売りなのですが、Surfase Pro 4 にインストールしたお客様から、一部の機能で
「画面崩れて入力欄見えねーよっ!(怒)」
というお叱りの声がっ!!早速 Surface Pro 4 を開発チームで購入して試したところ、思わぬ事実が発覚したのでした。
結論から言えば・・・
Windows Forms 終了のお知らせ
ですっ!ヽ(^o^)ノ*1
Forms は高DPIに対応していない
このソフト、もともと Forms で開発したものですが、2011年以降より WPFに移行を開始しました。ログインから始まるメイン処理の流れはWPF化をほぼ完了し、新規画面もすべてWPFで開発してまして、これらの画面は Surface Pro 4 で問題なく表示されます。ところがマスタ系を含む一部残った Forms の画面はかなり悲惨な状態になってしまいます。例えばこんな感じ・・・
まずデスクトップPC、SXGA(1280x1024) のモニタに表示された Forms 画面の抜粋です。

次に同じ画面をSurface Pro 4で表示してみる。Surface 12.3″(画面サイズ12.3インチ、2736x1824) で、「テキスト、アプリ、その他項目のサイズ」が200%(推奨)の場合です。

これ、「テキスト、・・・項目のサイズ」を100%にすれば収まるかと思ったら、デザインが崩れたままです。状況はまったく変わりません(汗)
では、同じインターフェイスを持つ WPF 画面ではどうか。SXGA のモニタでも、Surface Pro 4 既定の解像度と項目サイズでも、いずれも表示は変わりません。ナイスですね!

以上のことから、Forms の画面は高DPIのモニタに対応しておらず、WPF の画面は高DPIのモニタでも意図したデザインできちんと表示されることが確認できます。
やはりWindows Forms はオワコンなのか
この問題、下記記事の「アプリの画面のスケーリングを無効にする」を試みましたが、解決できません。Forms の画面は崩れたままです。
デスクトップ アプリの表示の問題の修正方法
WPFの高DPI対応に関しては、艦これビューアーで有名なぐらばくさんの記事が詳しいです。以下、参考記事・・・。
Visual Studio 2012 のような光るウィンドウを作る (再)、そして WPF での高 DPI 対応
Room metro Tokyo #1 資料公開
上のスライドの8枚目とまったく同じ状況になっててわらたw
いずれにせよ、今後タブレットだけに限らず高DPIのモニタが普及すること考えたら、もはや Forms の選択はあり得ないと言っていいでしょう。
*1:いや、MS的にはとっくに終わっているのだが・・・
![マイクロソフト Surface Pro 4(i7/256GB/16GBモデル) Windowsタブレット[Office付き・12.3型] (キーボード別売・シルバー) TH2-00014 マイクロソフト Surface Pro 4(i7/256GB/16GBモデル) Windowsタブレット[Office付き・12.3型] (キーボード別売・シルバー) TH2-00014](https://images-fe.ssl-images-amazon.com/images/I/31oKCi1D1xL._SL160_.jpg)