No more Death March

あるSEのチラシの裏 C# WPF

2019-01-01から1年間の記事一覧

Bitmani Redmineのバックアップとリストア

昨日書いた以下の続きからnomoredeathmarch.hatenablog.com バックアップとリストアの手段を確認したい プロジェクトとかチケットとか細かい運用方法を考える前になにかあったときのためにバックアップとリストアの手順を確認しておく。また社内に普及する時…

Excel職人が初めてRedmineを使って思ったことのメモ

今更ながらRedmineを使い始めたので色々とメモ Redmineを使い始めた動機 Redmineについては名前を聞いたことがある程度で最初からRedmine自体を覚えようとかそういった意識があったわけではない。所謂Excel職人なエンジニアなので今までタスク管理とかプロジ…

C# ListをラップしたObservableCollectionのイベント

ObservableCollectionはコンストラクタにListを渡して生成することが出来る。が、生成した後にListクラスを通じてコレクションを編集してもコレクション変更イベントは発生しない。 using System; using System.Collections.Generic; using System.Collectio…

WPF TextBoxの不思議な挙動

忘れる前にメモしておく。上位からみてScrollViewer→StackPanel→Grid→TextBoxの順にビジュアルーツリーを構成し、横スクロール可能な状態でGridの列をStar指定で分割、TextBoxにテキストを入力しつづけて割り当てられたサイズを超えると指定した幅を無視して…

C# ObservableCollectionに対する操作とCollectionChangedイベントの内容

C#

INotifyCollectionChangedインターフェースのCollectionChangedイベントについてMSDNの記述だけだとどういう通知が来るのかわからなかったのでプログラムを書いて確認してみた。MSDNのページは以下docs.microsoft.com 確認用のプログラム Visual Stu…

WPF MultiBindingのコールバックの挙動について

WPFのMultiBindingを初めて使った時に若干嵌ったのでメモしておく。 テスト用ビヘイビア コードビハインドでMultiBindingクラスを生成しバインディングする。マルチと言いつつTextプロパティしかバインディングしていないが確認するのには十分、コンバーター…

WPF Window起動時のイベント発生順位をメモ

WPF

余り複雑な制御を行っているコントロールを作るのは好ましくないが、どうしてもやらなければならない場合が結構あったりする。そんな時に毎回イベントの発生順位ってどうだっけ?と忘れてしまうことがあるのでメモしておく。後述の通りサンプル画面を作って…

WPF DependencyPropertyDescriptorのAddValueChanged

WPF

前回投稿した記事の中で触れていたDependencyPropertyDescriptorで実際にメモリリークするかどうかを試してみた。前回の記事はこちら↓ nomoredeathmarch.hatenablog.com画面側のコードは省くが、StackPanelとButtonを二つ配置、片方のボタンを押したらStackP…

WPF TextBlockのTextChangedイベント

WPF

TextBlockにはTextChangedというイベントは無いのだけど変更されたタイミングを知る方法はある。検索すれば色々やり方が出てくるけどいくつか種類があるので要点をメモ TargetUpdatedイベントを使う TargetUpdateイベントはバインディングのターゲットが更新…

WPF Bindingの解除は必要なのか

WPF

StackOverFlowから、ざっくりいうと質問が「Bindingって解除しないとメモリリークする?」ということで、 それに対する回答が 「DependencyPropertyかINotifyPropertyChangedを実装しているなら大丈夫、CLRオブジェクトだとメモリリークするかも。」 とのこ…

WPF ScrollViewerとPreviewKeyDown

WPF

画面上にButtonやToggleButtonを並べて配置すると矢印キーの操作でフォーカスを移動させることが出来るが、この連続したボタンをScrollViewerでラップするとフォーカス移動が効かなくなり、代わりにScrollViewerのスクロールバーが押した矢印の方向に動くよ…

WPF PreviewKeyDownとPreviewKeyUpの動き

WPF

またWPFについてちょとしたメモ、プログラムで嵌ったことはいつかの自分のためなるべくメモしておきたい。今回はPreviewKeyDownイベントとPreviewKeyUpイベントについて書いておく。当初、キーを押したらKeyDownイベントがキーを離したらKeyUpイベントが着火…

WPF TextBoxのIsReadOnlyとIsEnabledの組み合わせについて

WPF

WPFに関するちょっとしたメモ、TextBoxを修正させたくない場合基本的にはIsReadOnlyプロパティにTrueを設定するかIsEnabledにFalseを設定すると思われる。が、IsReadOnly=False、IsEnabled=Trueの場合に限って、少し困ったことになる場合がある。それは、確…

WPF ItemsControlをDataGridみたいに使う

WPF

この記事ではItemsControlをDataGridのみたいに扱うため、途中途中で必要な記述をメモして行く。

WPF StackPanelとScrollVIewerの不思議な動き

WPF

StackPanelとScrollViewerを組み合わせた時、 思った通りにScrollViewerが機能せずに引っ掛かることがある。 普通に動く場合 StackPanelをScrollViewerでラップすると、 画像のようにスクロール操作が出来るようになる。 機能しない場合 先の例とほとんど変…

WPF 不明な型 ~ を作成できません。

WPF

XAML関係で引っ掛かりやすいところ。XAMLの中で名前空間を指定する際に、同じアセンブリ内であればアセンブリ名を省略して記述することが出来る。次の画像がアセンブリ名を省略したもの。 省略せずに記述したものは次の画像のようになる。 省略した方が記述…

WPF 外部ライブラリに宣言されているリソースディクショナリの使用方法

WPF

いつも書き方を忘れるのでメモ。下の画像のようにプロジェクトResourceDictionaryServe内にリソースディクショナリMyResourceDictionaryがあったとして これをResourceDictionaryClientで使いたいとなった場合の記述は以下の通り ResourceDictionaryのSource…

StackOverFlowExceptionの原因

C#

忘れないうちにもう一つ、ほとんどが記述ミスによるメソッドやプロパティの無限ループが原因だが、 Linqの遅延評価が多用されている場合も呼び出し時に発生することがある。自分の場合、かなり頻度の高い処理の中で 同じ変数にLinqの遅延評価される戻り値を…

WPFのVisibilityとIsVisibleの違い

WPF

twitterではぶつぶつ独り言を呟いているけど、 ブログの方は半年以上なにも書いてなかったのか・・・ここしばらくWPFやC#で色々と痛い思いをしてるので、 忘れないように少しずつブログに吐き出す習慣をつけるようにしたい。ソースやXAMLも載せた方…