mogmo .NET

C#/XAML/VB6たまにC++についてメモ程度に書いていく。あくまで自分用。責任は取れません。

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

テストケース管理の基礎知識

弊社はクラウドサービスの使用が禁止されているため,世に出ている便利ツールのほとんどが使えない。 Googleサービスはギリギリ使用OKなのでテスト項目管理ツール「Qase」を参考にスプレッドシートでどうにかテストケース管理できないか試行錯誤している。 …

テストについて

Googleスプレッドシートでテストケースを管理しているチームは世の中にどれくらいいるんだろう。。 うちの会社ではスプレッドシートやエクセルがゴリゴリに使われているので,無償のツールで成果を出さないと導入が厳しい。 という背景があり,テストケース…

Windowsのショートカット

たまにボケるのでメモしておく。 ショートカットキー一覧 メイン機能 スタートメニューを表示する Windows デスクトップを表示する Windows + D 設定画面を表示する Windows + I エクスプローラーを起動する Windows+ E ショートカットメニュー(右クリック…

アクセス修飾子の確認

サンプル プロジェクトを2つ用意して,アクセス権を確認した。 ClassLibrary1 namespace AccessApp { public class Server { public void PublicMethod() { } // どこからでもアクセスできる internal void InternalMethod() { } // アセンブリ外からはアク…

クラスやメソッドの使用を禁止する

使用禁止にしたいクラスやメソッドの前にObsolete属性を付けるだけでOK。 使おうとすると,警告またはエラーが発生します。第一引数:メッセージ 第二引数:trueならエラー,falseなら警告 [Obsolete("このメソッドは廃止される予定です。代わりに'NewMethod…

DataGrid の表示内容をTextBoxの入力内容でフィルタリングする

参考 WPF/XAML : DataGrid の表示内容を TextBox への入力内容でフィルタリングする - i++ 上記サイトにお世話になりました。 ポイントは以下3つとのこと。 DataGrid の ItemsSource に CollectionViewSource.View を使う CollectionViewSource.Filter にフ…

TextBoxで右クリックするとWindowsがフリーズする

現象 Visual Studio 2017でWPFアプリを開発中に, テキストボックスを右クリックするとVisual Studioがフリーズする現象が起きた。 どのアプリを作ってもフリーズする。困る。Windowsのイベントビューアを見たらこんなエラーが出ていた。Windows イベントビ…

入力エラーの検証

以下サイトが参考になりそう。WPFでの入力値検証 - SourceChordWPFでの入力値検証・その2 ~INotifyDataErrorInfoを使ってみる~ - SourceChord

GridSplitterを使う時の注意

GridSplitter の HorizontalAlignment="Center"を設定してあげないと,挙動が変になる。 正常コード <Grid Margin="20"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="auto"/> <ColumnDefinition Width="*"/> </Grid.ColumnDefinitions> <Grid Grid.Column="0" Background="LightBlue"/> </grid></grid>

ThumbコントロールのMouseDownイベントを発生させる

social.msdn.microsoft.com確かに,Thumbコントロールの MouseDown は, イベントは起きないというか, 正確には,論理ツリーをbuble upして伝播していくんですが, その時にハンドラメソッドが呼ばれないように, Thumbコントロールが実装時にUIElement.Mou…

ListView/ListBoxの要素間の隙間を無くす

WPF

ItemContainerStyleでListBoxItemのスタイルのPaddingを0にすればよい。 <ItemsControl.ItemContainerStyle> <Style TargetType="{x:Type ListBoxItem}"> <Setter Property="BorderThickness" Value="1"/> <Setter Property="Margin" Value="0"/> <Setter Property="Padding" Value="0"/> </Style> </ItemsControl.ItemContainerStyle>

コレクション型依存関係プロパティ

なんかうまく動かないんだよなぁ。。調査中。 まとまったら文章整理する。 コレクション型依存関係プロパティ | Microsoft Docs

INotifyPropertyChangedの実装

いつも調べちゃうのでメモ。 INotifyPropertyChangedを継承する プロパティの変更通知をViewに反映するので,ViewModelに継承させることが多い。 場合によってはModelに継承させることもしばしば。NugetからPrismパッケージをインストールして使用すると,次…

コードビハインドのデータをBindingする

方法 コードビハインドに書いたプロパティをBindingさせるには, RelativeSourceでUserControlやWindow等大元まで参照を戻す必要がある。 これしないとDataContextを参照しようとするからね。XAML: <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType={x:Type UserControl}}, Path=SampleText}"/> コードビハインド: public string SampleText { get; se</textblock>…

自動で命名してくれるCodicが便利

Codicとは 日本語から自動で命名してくれるオンラインサービス。 「プログラマーのためのネーミングツール」なんて呼ばれている。 codic - プログラマーのためのネーミング辞書 Visual Studio 2017用プラグインがある Codic Extension - Visual Studio Marke…

Visual Studio 2017でXAMLデザイナーの背景色を変更する

結論 対策1 オプション設定を変更 [ツール] ->[オプション] -> [環境] -> [フォントおよび色] -> 設定の表示を「XAML デザイナー」にして配色を白に変更することで対策可能。オプション設定設定変更後のXAMLデザイナー 対策2 テーマエディタを使用 こちらは…

型変換演算子 implicit/explicit operator

C#

変換演算子は,ユーザが定義したクラス型を別の型に変換するもの。 構文 暗黙的と明示的の2種類の構文がある。 暗黙的(implicit) 別の型に変換した時に,自動的に変換演算子が呼び出される。 public static implicit operator 変換後の型(変換元の型 値1) { …

internalクラス内のメソッドはinternalで書くべきか

C#

悩んだのでメモ 結論 internalではなくpublicで書くのがよい。 理由 メソッドを外部から使いたくなった時に, クラスのアクセシビリティをinternalからpublicに 変更するだけで済むから。