FAQ
A.以前のエントリで、XamDataGrid で絞り込み表示されてるレコードのみ抽出する方法を紹介しましたが、これ一つ落とし穴がありまして、要素の描画タイミングによるのか、正常にレコードを取得できない場合があったりします。関連記事:Q124. XamDataGrid で…
A.XamDockManager はペインを一元管理できるコントロールでして、ペインのドッキングやフローティング、タブや左右・上下の配置などを自在に配置可能なコンテナコントロールです。Visual Studio のIDE をイメージすれば判りやすいと思います。 ユーザーがペ…
A.以前、XamDataGrid でユーザーが操作した列の移動や並び替え、グループ化やソートを次回起動時用に保存したい場合、SaveCustomizations メソッドやLoadCustomizations メソッドを使えば、レイアウトの保存・読み込みが可能だという記事を公開しました。関…
A.以前、XamDataGrid でユーザーが操作した列の移動や並び替え、グループ化やソートを次回起動時用に保存したい場合、XamDataGrid.SaveCustomizations メソッドやXamDataGrid.LoadCustomizations メソッドを使えば、レイアウトの保存・読み込みが可能だとい…
A.いまさら感がひしひし漂うネタですが、まあコンセプトが周回遅れブログのため、その辺りは気にせずスルーでお願いできればと思います。 コントロールの Visiblity プロパティに、ビューモデル側の bool 型プロパティをバインドさせたいシーンは多いと思い…
A.昨日の記事に引き続き、またまた XamDataGrid ネタです。 XamDataGrid で、フィルターで絞り込まれているレコードのみを抽出には、各レコードの IsDataRecord プロパティで判定し抽出する必要があります。 以下、サンプルコートです。 前回もそうでしたが…
A.くそ忙しかったため、かなりご無沙汰しておりましたが、久々の XamDataGrid ネタです。 XamDataGrid で表示されている内容を Excel に出力したい場合、DataPresenterExcelExporter クラスの Export もしくは ExportAsync メソッドを使うといいです。この…
A.アプリケーションクラス自体をカスタマイズしリソースにバインドさせることで、アプリケーションリソースの動的変更が可能になります。 昨日のネタを基に ViewModel を使わずリソースとバインドするようできないか、少し考えてみました。
A.アプリケーションリソースにビューモデルを用意し、リソース定義にバインドさせることにより動的変更が可能になります。 先日のネタを基に ViewModel を使ってバインドできるようならないか、少し考えてみました。
A.App.Current.Resources で、App.xaml に定義したリソースを参照できるので、リソースの中身をコードビハインドでごっそり入れ替えてしまえばいいです。 久々のWPFネタです。最近某所から要求があったので、少しサンプルを考えてみました。
A.DataTrigger を使って、MenuItem.ItemsSource の中身をごっそり入れ替えてしまうという手があります。これならコードビハインドは不要です。 例えば以下のようなメニュー構成になっているとします。 これを状況により以下のような構成にしたり こんな構成…
A.DataTemplete を使ってリストボックスの項目表示をカスタマイズし、コマンドをバインドします。DataTemplete は XAML 系アプリケーションならではの機能で、Windows Forms では実現不可能な極めて柔軟なインターフェイスを提供します。以下、MSDNの関連記…
A.例えば ActiveReports Viewer に PDF出力用のアイコンを追加したいというニーズがあるとします。この場合、コードビハインド内で Viewer のビジュアルツリーを辿って ToolBar のインスタンスを取得、PDF用のボタンを追加するという方法もありますが、あま…
A.全くニーズはないと思いますが(汗)、とりあえず備忘録としてエントリを起こしました。Forms から WPF への移行期間に、同一プロジェクト(もしくはソリューション)内で Form と Window が混在する場合があります。*1 親 Window から子 Form を ShowDialog …
A.ソリューション全体で画面のアイコンを統一管理したいというニーズがあったため、この記事を起こしました。 まず単一の画面であれば、以下のようにWindow.Icon プロパティにパスを指定するだけで事足ります。 <Window Icon="/hoge.ico" /> 少し大きなプロジェクトになると、アイコン</window>…
A.このところベンダーさんのコントロールに偏り過ぎた内容のため FAQと名乗っていいのかかなり怪しくなってきましたが(汗)、そこは個人ブログの備忘録ということでお許し頂きたく思います。 前回に引き続き XamComboEditor の話です。以下の画像を見てのと…
A.またまた備忘録。Infragistics社のWPFコントロール群に含まれているコンボボックス「XamComboEditor」ですが、CheckBoxVisibility プロパティを True にすると「チェックボックス付きコンボボックス」に変わります。 これ、なかなか便利そうなんですが、…
A.昨日のエントリに引き続き、ネストレコードに関する備忘録です。XamDataGrid でネストレコードが存在する場合、ネストレコード側のヘッダのみ変更する方法について色々調べたところ、二つ目のFieldLayout 内でスタイルを設定すればいいことがわかりました…
A.備忘録です。XamDataGrid でネストされたレコードが存在する場合、どうすればラベルや列幅が設定できるか判らなかったのですが、XamDataGrid.FieldLayouts で二つ目の FieldLayout に設定すればいいことがわかりました。 以下、スニペットです。ネストさ…
A.XamDataGrid でユーザーが操作した列の移動や並び替え、グループ化やソートを次回起動時用に保存したいというケースがあります。その場合、XamDataGrid.SaveCustomizations メソッドやXamDataGrid.LoadCustomizations メソッドを使えば、レイアウトの保存…
A.Infragistics.Windows.Reporting.Report.PageFooterTemplate プロパティに、XAMLで定義した DataTemplate リソースを設定します。ヘッダーも Report.PageHeaderTemplate プロパティに DataTemplate を設定できます。 以下サンプルです。 <igDP:XamDataGrid.Resources> <DataTemplate x:Key="FooterTemplate"> <Grid Margin="5"> <Grid.ColumnDefinitions> </grid.columndefinitions></grid></datatemplate></igdp:xamdatagrid.resources>
A.Infragistics.Windows.Reporting.Report.ReportSettings プロパティを設定します。 なおReportSettings クラスのプロパティ一覧ですが、12.1以降のバージョンだとオンライン・オフラインともリングが切断されていて見当たりません。11.2 ならあるようなの…
A.Infragistics.Windows.Reporting.XamReportPreview を要素に持つ画面を呼び出せばプレビューを表示できます。 以下サンプルです。 // C# using Infragistics.Windows.Reporting; public partial class MainWindow : Window { private void Button_Click(O…
A.コードビハインドで Infragistics.Windows.Reporting.Report クラスを使えば、簡単に印刷できます。列幅の変更・ソート・列の移動やフィルタリング等、ユーザーが任意に行った設定や、XamDataGrid に設定したテーマがそのまま印刷に反映されます。 以下サ…
A.ItemoSource でバインドされたコレクションを操作せずに コントロールで並び替えを行いたい場合が多々あると思います。その場合、リソース内で CollectionViewSource を使えば、コレクションを操作せずにソートすることができます。 以下サンプルです。Vi…
A.吹き出し図形をレンダリングする Callout クラスを使います。なおこのクラスは Blendのアセンブリ「Microsoft.Expression.Drawing」で提供されていますので、事前に参照設定に追加しておく必要があります。以下サンプルです。このサンプルではツールチッ…
A.DispatcherUnhandledException イベントを使用します。以下サンプルです。未処理例外情報をイベントログに保存します。 なお DispatcherUnhandledException イベントだけだとUIスレッドの未処理例外しか捕捉できません。UIスレッド以外の未処理例外も捕捉…
A.StyleSelector を使用します。以下サンプルです。奇数行と偶数行で背景色を設定します。 まず StyleSelector を継承したクラスを作成し、奇数行・偶数行のスタイルを保持するようプロパティを設けます。そして SelectStyle メソッドをオーバーライドし、…
A.IsKeyboardFocusWithin プロパティが True の場合、IsSelected プロパティを true にするよう、ListBoxItem のスタイルにトリガーを設定します。DataTemplate で ListBoxItem に TextBox などの編集用コントロールを設けた場合、子要素の TextBox にフォ…
A.SystemColors.HighlightBrushKey を上書きします。以下のサンプルでは選択行の背景色を赤に変更しています。また SystemColors.ControlBrushKey を上書きすると、リストボックスのフォーカスが外れても選択行の強調表示を保持することが出来ます。 <ListBox ItemsSource="{Binding Persons}" IsSynchronizedWithCurrentItem="True" SelectedIndex="0" Grid.Row="1" > <ListBox.Resources> </listbox.resources></listbox>