ざこノート
2018-11-17 [C# ]

[C#] 高速でファイルとフォルダを列挙する

Win 32 APIのFindFirstFileExを使用して実装します。Directoryクラスと同じような静的メソッドで実装するので、そのまま差し替えられます。

2018-11-10 [C# ]

[C#] Collection<T>の使用用途とListとの違い

Collection<T>は独自コレクションを実装する時に継承して使用します。Collection<T>は内部でList<T>を保持していますが、拡張できるように仮想メソッドが定義されています。

2018-11-01 [C# ]

[C#] 32bitプロセスから64bitプロセスで外部ファイルを起動する

64bitのOSで起動している32bitアプリ(WOW64)から外部アプリ(任意のファイル)を起動する際に、WOW64のリダイレクトの影響を受けずずに正常に起動させる方法です。
cmd.exeを経由して外部アプリを起動するようにします。

2018-06-24 [WPF]

[WPF] Menuクリック時にLostFocusによるバインド更新されない

メニューバーをクリックしてもTextBoxにフォーカスが残り、UpdateTrigerが呼ばれずTextBoxにバインドした値が更新されない罠。
FocusManager.IsFocusScopeで解決。

2018-06-13 [WPF]

[WPF] C#でDataGridColumnのHeaderとVisibilityをバインドする例

DataTableDataGridAutoGeneratingColumnで自動作成させたケースで、列のヘッダー名と非表示の設定をバインドで制御する例です。

2018-05-29 [WPF]

[WPF] C# 指定したファイルのアイコンを表示する

Windows API Code Packを使用してアイコンを取得して画面表示します。
ローカルファイルの場合は、System.Drawing.Icon.ExtractAssociatedIconで取得することもできますが、UNC(’\‘から始まるパス)は例外になります。

2018-05-27 [Git]

[Git] 絶望した際に失敗した操作を巻き戻す

リセットしすぎて必要なコミットを消してしまった場合の救済方法です。
git refloggit resetを使用します。

2018-05-27 [Git]

[Git] 歴史上のCommiterとAuthorの名前とメールアドレスを変更する

git filter-branch –env-filterを使用して過去の情報を変更します。
無条件での一括変更、特定のメールアドレスを条件とした変更をする方法です。
--commit-filterは遅いようなので使用していません。

2018-05-26 [Git]

[Git] 歴史上から特定のファイルを削除する

git filter-branch –index-filterを使用して、過去からファイル/フォルダを消し去ります。
ファイル名にスペースが含まれる場合は注意です。
–tree-filterより高速です。

2018-05-25 [Material Design Lite]

[Material Design Lite] 固定ヘッダーで下スクロールしてもスマホChromeのアドレスバーが隠れない

MDL の Fixed header を使用すると、AndroidのChromeで下スクロールしてもアドレスバーが非表示にならない。CSSを追加定義して対応します。