Q125. コントロールの Visiblity プロパティに bool 値をバインドしたい

A.いまさら感がひしひし漂うネタですが、まあコンセプトが周回遅れブログのため、その辺りは気にせずスルーでお願いできればと思います。
コントロールVisiblity プロパティに、ビューモデル側の bool 型プロパティをバインドさせたいシーンは多いと思います。Visiblity プロパティの型は System.Windows.Visibilityのため、bool と互換性はありません。こういう具合に型が異なるもの同士をバインドしたいときに用意するのがいわゆるコンバーターです。

参考記事:WPFのデータ変換


殆どのケースでは、上の記事のように自作しなければならないのですが、Visibility と bool 値のバインドでは、標準で用意されているコンバーターが存在します。それが BooleanToVisibilityConverter です。

サンプルコード

以下、簡単なサンプルを考えてみました。チェックボックスをONにすると、テキストを表示するプログラムです。


まずビューモデルです。ちなみにMVVMフレームワークLivet を使ってます。


お次はビュー。TextBlock の Visibility プロパティとビューモデルの IsChecked プロパティを BooleanToVisibilityConverter を使ってバインドしてます。


上のコードでは少々XAMLが冗長になってしまうので、通常コンバーターを使う場合、リソースに定義して使いまわします。以下、リソースを使ったサンプルです。アプリケーション全体で使用するなら App.xaml (VB なら Application.xaml) に定義しておくといいでしょう。


System.Windows.Controls 空間には他にも幾つかコンバーターが用意されてますが、使いどころが微妙なコンバーターばかりですね。よくありがちな数値とテキストの変換などは標準のコンバーターが用意されてないので、自前のコンバーターを用意する必要があります。


WPF FAQ の目次に戻る


 

Q124. XamDataGrid で絞り込み表示されてるレコードのみ抽出する

A.昨日の記事に引き続き、またまた XamDataGrid ネタです。
XamDataGrid で、フィルターで絞り込まれているレコードのみを抽出には、各レコードの IsDataRecord プロパティで判定し抽出する必要があります。


以下、サンプルコートです。


前回もそうでしたが、このサンプルでもメソッドのパラメータに XamDataGrid ではなく、XamDataGrid の上位クラスである DataPresenterBase を渡しています。実は DataPresenterBase クラスで XamDataGrid が提供する殆どの機能*1が定義されているためです。


WPF FAQ の目次に戻る


 

*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 というべきなんですよね。そのうち機会見て、今までの記事を再構築したいと考えてます。でもいつになるやら・・・


WPF FAQ の目次に戻る


 

二種類の 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 WindowsMySQLをインストールし動作するか試してみた訳ですが、今回のエントリでは Windows 側から C# プログラムで MySQL に接続し動作するか試してみます。

Bash on Windows で MySQL を動かしてみる

MariaDB&MySQL全機能バイブル

MariaDB&MySQL全機能バイブル

シェルスクリプトマガジン vol.39

シェルスクリプトマガジン vol.39

  • 作者: 當仲寛哲,斉藤博文,田代勝也,大岩元,新美勇一,高橋光輝,白羽玲子,後藤大地,法林浩之,すずきひろのぶ,熊野憲辰,御影けい,松浦智之,水間丈博,桑原滝弥,濱口誠一,USP研究所,ジーズバンク
  • 出版社/メーカー: USP研究所
  • 発売日: 2016/06/25
  • メディア: 雑誌
  • この商品を含むブログ (1件) を見る


コマンドプロンプトから Bash on Windows に接続し MySQL を起動

Bash on Windows & MySQL の情報って思ったより少ないですね。わたしの頭では Bash on Windows にインストールした MySQLWindows 側から接続できないと思ってましたが、完全誤解してました。NaviCat の評価版インストールして Localhost に接続したら、しっかりテーブルにアクセスできるじゃありませんかw


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


というわけで、これ以降の操作はコマンドプロンプトで行います。


新規ユーザー追加

C# から MySQL に ROOT で接続するのって、仮に Localhost であってもあまり気分がいいものではありません。よって、新規ユーザーを追加します。
コマンドプロンプトを起動し、bashBash on Windows に移動します。

> bash

続きを読む

Bash on Windows で MySQL を動かしてみる

いま Windows が熱いですね!
いや正確には Windows 10 Insider Preview で、Windowsj上で Linux が動くようになり、OSSやインフラ系のエンジニアさん達に俄然注目浴びてるわけですが、MySQLユーザーの私も、ちょうど SoftwareDesign 6月号bash 大特集と MySQL の特集記事読んでるうち、
「むむ?これはもしかして Bash on WindowsMySQL を操作せよということではないか?!」
と、悪い心がむくむく湧いてきてしまったので、早速試してみることにいたしました。

Bash on Windows を有効化する

よいこのみんなはとっくに Bash on Windows を有効化してると思うので、この辺りは割愛させて頂きます。まだの方は、以下の記事など参考に、ぜひ茨の道に足を踏み入れてください。
Bash on Ubuntu on Windowsをインストールしてみる(Windows 10 build 14316)

なお Insider Preview はあくまで最新機能の評価版のため、想定外の事態に遭遇することがたびたびありますが、それも致し方ないと太平洋のごとき大らかな心を持ち、Microsoft にガンガンフィードバックを送ってやりませう

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

続きを読む