RunningCSharp

MS系開発者による、雑多な記事。記事は所属企業とは関係のない、個人の見解です。

WPF

WPF:プロパティ値の継承(包含継承)が可能な添付プロパティ

WPF:DataGridヘッダーのクリック時にViewModel側のICommandを実行するための添付プロパティ

stackoverflow.com 上記リンクでBlendのオブジェクトの拡張を作成してTriggerをStyle内に記述する方法での解決があります。 汎用性があるものの、多くのxamlを書く必要があるため、添付プロパティでの解決方法も一応記載してみようと思いました。

WPF:DataGridの列ヘッダークリックによるソートを「昇順」→「降順」→「ソート無し」の繰り返しにカスタム

WPFのデータグリッドの標準的な列ヘッダークリックソートの動きは「昇順」→「降順」→「昇順」…の繰り返しなのですが、 これを「昇順」→「降順」→「ソート無し(データソースの並び順)」→「昇順」…の繰り返しに変更します。 DataGrid向けの添付プロパティを用…

WPF:配列からRadioButtonを自動生成するItemsControlを作成

タイトルの通りItemsSourceにboolとstringを持ったオブジェクトの配列を渡すことでRadioButtonを生成するコントロールのサンプルです。 サンプルはGitHubにアップしてみました。 github.com ItemsControlを継承したカスタムコントロールとなっております、利…

WPF:TreeViewのExpanderをStyleの変更をせずに非表示にする

WPF:TextBoxで連続入力中の入力エラーを抑制

WPF:コントロールの脇にContextMenuを表示する

コントロールに沿う感じでコンテキストメニューを表示しようとしたところ、少しはまってしまった為メモ。 図のように、ボタンに沿う形でコンテキストメニューを出したかった。 コードは下記のとおり。

WPF:コマンド実行中は非活性となり、連続実行を抑止するボタン

わざわざIsEnabledプロパティをバインドしてコマンドにasync/awaitを書いて、連続クリックをロックで止めて…と書く画面に実装するのが面倒だと思い、作ってみました。 public class AsyncButton : Button { /// <summary> /// Commandに値を入れられないようスコープ</summary>…

Xamarin:勉強会で学んだことの雑記

4/10(日)に、「業務系システム開発勉強会」にお邪魔しまして、初めてXamarinでのコーディングを行いました。 当日はエクセルソフト株式会社の田淵氏やイメージ情報開発株式会社の皆様には特にお世話になりました。 ここぞとばかりに質問ばかりしてしまい、申…

WPF:StyleでContentプロパティを設定すると発生する問題について

WPF:Converterを使うとき、xamlのResource内で宣言をしたくないときの書き方

DataConverterを用いたコーディングは大体こんな感じ。 using System.Windows; using System.Windows.Data; namespace WpfApplication { /// <summary> /// MainWindow.xaml の相互作用ロジック /// </summary> public partial class MainWindow : Window { public MainWindow()…

WPF:DataGridで画面表示直後、シフトキー押下で複数選択を行いたい

調査に大分手間取ってしまったのでメモ。 1、画面表示時、DataGridにデータを表示、一行目を選択状態とする。 2、そのままShift+マウスボタン押下で複数選択をしたい 上記処理を実現が、思いのほか大変でした。 一度選択行をクリックした後であればShift+…

WPF:内容に合わせて表示幅の変わるコンボボックス

xaml

WPF:タブ操作時は選択チェックボックスのみ遷移、矢印キー操作時は通常通り非選択チェックボックスにも遷移を行うチェックボックス

public class Att { public static bool GetSelectedRadioButtonFocus(DependencyObject obj) { return (bool)obj.GetValue(SelectedRadioButtonFocusProperty); } public static void SetSelectedRadioButtonFocus(DependencyObject obj, bool value) { obj…

WPF:キーボード操作によるフォーカス移動をプログラムで行う

使いたいときについ忘れてしまうため、メモ程度に。 以下はタブキー押下によるフォーカス移動。 TraversalRequest traversalRequest = new TraversalRequest(FocusNavigationDirection.Next); firstitem.MoveFocus(traversalRequest); FocusNavigationDirect…

WPF:テキストボックスへの入力制限

textBoxのTextChangedイベントより禁止文字の検知と削除を行う例を記載します。(『あ~お』の文字列を禁止する) 2016/05/17 初回入力制約はPreviewTextInputで行い、元に戻す・やり直し処理のみTextChangedイベントで行わないと、 IME入力中に禁止文字が来る…

WPF:FocusVisualStyleを常に表示する

通常、FocusVisualStyleはキーボード操作後から表示されますが、 下記コードを実行後は常に表示されるようになります。 var property = typeof(KeyboardNavigation).GetProperty("AlwaysShowFocusVisual", BindingFlags.NonPublic | BindingFlags.Static); p…