かきスタンプ

福岡でフリーランスの物流系のエンジニアやってます。

C#

C#:Visual Studioを使って、コードの複雑度を測定する方法。

Visual Studioを使って、コードの複雑度を測定する方法。 ブラックボックスが多い、未知のプロジェクトに着手する時の指標に。 1. メニューから[分析]→[コードメトリックスを計算する]を選択する。 (ソリューション単位で計測するか、プロジェクト単…

C#(MVVM):Vとバインドしたプロパティに対して VM側で値を変更する処理を記述する場合、アクセサでなくプライベート変数に変更をかけた方がいいのではないかという話。

C#

Vとバインドしたプロパティに対して VM側で値を変更する処理を記述する場合、アクセサでなくプライベート変数に変更をかけた方がいいのではないかという話。 以下、サンプルソースです。 今回の話題に必要なパートのみを抜粋した状態です。 <TextBox Text="{Binding Path=MyVmString01, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" /> <Button Content="AddText" Command="{Binding Path=AddTextCommand}" /> /// <summary> /// プ…</summary></button></textbox>

C#(MVVM):ソースコードにてバインディング設定する方法

C#

xamlでなく、ソースからバインド設定をするには、SetBinding メソッドを使用します。 (例) Button myButton01 = new Button(); // Content に「MyString01」というプロパティとのバインディング設定を追加 myButton01.SetBinding(Button.ContentProperty, …

WPF:ListViewの列を、幅いっぱいに広げる(GridViewにアイテムをセットする場合)

GridView でアイテムをセットした ListView にて、セットした内容を横幅いっぱいに広げるには、カラムの Width を ListView の Width とバインディングさせる方法があります。 (例) <ListView x:Name="myListView01" Width="300"> <ListView.View> <GridView> </gridview></listview.view></listview>

WPF:XAML側で設定した値を、XAML側にてバインディング

V(XAML)と VMとのバインディングは頻繁に使いますが、XAML側で定義した値とのバインディングも可能です。 以下のように、「ElementName」に、XAML側にて定義したNameを指定します。 (例) <TextBox Name="myTextBox01" Text="input" /> <TextBlock Name="myTextBlock01" Text="{Binding Text, ElementName=myTextBox01}" /> この例では、TextBlock の Textに、TextBoxの内容をバインディ</textblock></textbox>…

WPF:DataGrid の ItemsSource に、配列データを設定すると妙な出力結果になるんで、その場合は ListView を使おうという話

郵便番号/住所/緯度経度データ等の地理情報を、XML or JSON で取得できるサービス『HeartRails Geo API』にて、エリア情報を叩くと、こういう値が返ってきます。 { "response": { "area": [ "北海道", "東北", "関東", "中部", "近畿", "中国", "四国", "…

C#:DBから取得したModelのリストを、Modelを継承した要素で表現する

C#

こういう状況。 Model定義されたクラスがある Model のデータは、DBなどから参照し、List にしている List の中身を、Model を拡張したクラスで表現したい(画面制御のみで使用するプロパティを付与したい) (例) List<Users> //Model(のリスト) List<ExtendUsers> //Modelを</extendusers></users>…

C#:アップキャストとダウンキャストについて、サンプルソース付きで解説してみる

C#

アップキャストは、常に安全に行える ダウンキャストは、エラーが発生する事がある。 ※ 解説 ※ キャストは型を変更するだけで、中身が消える訳ではない。 (アクセスできる範囲が変わるだけで、実態は存在している) インスタンス作成時、メモリに領域が割り…

C#:ネット上で一番簡単な、async/await を使用した非同期処理の説明とサンプル

C#

非同期処理にて使用する async/await の超簡単な説明 非同期メソッドには async キーワードを付ける。 async void の場合、呼び出し元に awaitは不要 async Task の場合、呼び出し元に awaitを記述する。 async Task<T> は T の型が返る。(例:Task<int> は intが返</int></t>…

WPF:Grid上の好きなポジションに、動的に要素を配置

System.Windows.Controls.Grid は、Grid.Row と Grid.Column にて、要素のポジションを指定します。 動的に要素を配置する場合、SetValue にて、Grid.RowProperty と Grid.ColumnProperty を設定するとOKです。 実行例 ソース xaml側

WPF:動的に配置したボタンにイベントを定義

WPF(C#)で、ボタンを動的に配置し、イベントを定義する方法。 実行例 ※ボタンはソース側にて、動的に配置しています。 ボタンを押したときのイベント内容 dynamicButton01がクリックされました。 dynamicButton02がクリックされました。 (記述例) xaml側

WPF:ボタンのテキストで改行させる

WPFにて、ボタンのテキストを改行して表示させる場合、TextBlock を入れ子にする方法があります。 xaml側、cs側の、どちらでも対応可能です。 (実行例) (記述例) xaml側

.NETアプリを無料で公開できるサービス:『AppHarbor』について

.NETアプリを無料で公開できるサービス『AppHarbor』についての内容を、スライドにしてみました。 https://gitpitch.com/kakisoft/DeployDotnetApplicationsFreeUsingAppHarbor 『Fukuoka.NET #9』 でのLT資料として使用しました。

ASP.Net MVC:テンプレートが色々選べるプラグイン『BootstrapBundle』

Fukuoka.NET様主催の、ふくてんもくもく会 #1 にて、 もくもくした内容をスライドにしました。 『ASP.Net MVC BootstrapBundleはどうでしょう?』 https://gitpitch.com/kakisoft/HowAboutASP.NetMVCBootstrapBundle#/ ASP.NET MVCでひな形を作る時、色々な…

ASP.NET:1pxdeepを使用したBootstrapテーマ変更

「1pxdeep」という、Bootstrapテーマカラーを自由にカスタマイズできるサービスを利用し、ASP.NETに適用する手順です。 ―1― 1pxdeepにて、「Seed color」ボタンでカラーを選択し、「Schema now」で内容を確認。 「DownLoad」ボタンをクリックし、アーカイブ…

Ubuntu:ASP.NET MVC 基本操作

【環境:Ubuntu 16.04.2 LTS】 以下のコマンドで、ASP.NET MVCの雛形を作成できます。 sudo dotnet new mvc ビルトインサーバの起動と実行は以下のコマンドで。 sudo dotnet run 実行時、Assets file 'project.assets.json' not found.というエラーが発生し…

Ubuntu向け:Visual Studio Code の C# 実行環境

1. 公式サイトより、Ubuntu向けのインストーラを選択。 2. コンソールにてインストール(参考サイト ) sudo dpkg -i <file>.deb sudo apt-get install -f 3. /etc/apt/sources.list.d/dotnetdev.list を編集。(無ければ新規作成) 以下の内容を追記。(参</file>…

Windows向け:Visual Studio Code の C# 実行環境

WindowsユーザがVisual Studioを使う感覚で Visual Studio CodeにてC#を書き、以下ような現象が発生した人のためのエントリ。 実行時に、.NET Core SDKが必要となります。 公式サイトからダウンロードし、インストールします。 機能拡張(Ctrl + Shift + X)よ…

Visual Studio:「前のメソッド」ショートカット

Visual Studio 2008までは存在していた「前のメソッド」「次のメソッド」のショートカットは、2010以降は無いんで、使いたかったら自分で登録しないといけないみたい。 ツール→オプション→環境→キーボード の画面を開き、 『以下の文字列を含むコマンドを表…