かきスタンプ

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

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>…

PL/SQL:update文の where条件に、 配列を使用する

以前、配列を where句における in の条件式として使用するというエントリを書きましたが、update文にて、この書き方をすると、ORA-00902: データ型が無効です。というエラーが発生します。 ですので、update文の where 条件にて、配列を引数に取るには、fora…

Oracle12c:PL/SQLのデバッグ実行に必要な設定【忙しい人向け】

Oracle 12cにて、PL/SQLをデバッグするために必要な設定 DEBUG CONNECT SESSION 権限の許可 DBMS_DEBUG_JDWP に対する EXECUTE 権限 デバッグするストアド・プロシージャーに対する EXECUTE 権限 JDWP ACL 実行権限 ストアドプロシージャが "Compiled for De…

PL/SQL:配列を WHERE句における in の条件式として使用する

こんな感じ。 type TYPE_NUM_LIST is table of number index by binary_integer; --//////////////////////////////// -- 配列データをINに渡して参照 --//////////////////////////////// PROCEDURE MY_PROCEDURE_02_4 ( IN_NUM_LIST IN TYPE_NUM_LIST --配…

Oracle(PL/SQL):配列型の引数に、値を設定してデバッグする

Oracle開発ツールのいくつかは、PL/SQL の引数が配列の場合、自由に値がセットできなくて、苦労するケースもあるかと思います。 Oracle SQL Developer のデバッグ実行にて、『PL/SQL ブロック』を編集することで、配列型の引数に、好きな値を設定する事がで…

Oracle SQL Developer:出力結果を、列名を含めてコピー

Oracle SQL Developerにて、select文の結果を、「Ctrl + A」「Ctrl + C」⇒「Ctrl + V」と操作すると、レコードのみがペーストされます。 「Ctrl + A」「Ctrl + Shift + C」⇒「Ctrl + V」で、列名を含めてコピーが可能です。

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側

Oracle:大文字/小文字 半角/全角 ひらがな/カタカナ を区別しないで検索

以下の関数を組み合わせて、大文字/小文字 半角/全角 ひらがな/カタカナ を区別せずに検索できます。 UPPER(小文字→大文字) TO_MULTI_BYTE(半角→全角) UTL_I18N.TRANSLITERATE(詳細は後述) (例) 以下で、「大文字・全角・カタカナ」に変換しています…

Oracle12:【忙しい人向け】ユーザ作成方法

Oracle12にて、以下のようなメッセージが出てユーザが作成できなかった時の対処。 【エラーメッセージ】 ORA-65096: 共通ユーザーまたはロール名が無効です ググったら、何やら複雑な情報がバシバシと出てくるけど、要は「12からアーキテクチャが変わった」…

TypeScript:外部モジュールを含めたソースのコンパイル方法と、実行時の注意点

TypeScriptでは、外部モジュールを含めてコンパイルする場合、「-m」オプションを使用します。 (オプションを指定しない場合、別々の jsファイルが生成される。) (例:コンパイル CommonJS方式) tsc sample01.ts -m commonjs (例:コンパイル AMD方式)…

TypeScript:別ファイルのモジュールが認識されない

TypeScriptでは、スラッシュを3つ付けたコメントの後に、importするモジュールを指定する。 (例) main.js module UserModule { export var name = "yamada"; } console.log(UserModule.name); /// <reference path="./developers.ts" /> console.log(DeveloperModule.name); developers.ts mod</reference>…

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

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

MySQL Trend Seminar 2018 @福岡:ダイジェスト

『MySQL Trend Seminar 2018 @福岡』での話のダイジェスト。 sosl.connpass.com MySQL 8.0 について MySQLは、分析とかは元々あまり得意ではなかったが、改善されて、どんどん良くなった。 GIS(空間図形情報)サポートの強化 Boost.Giometryライブラリを統…

Oracle:ODTを使用した時の接続設定

ODT(Oracle Developer Tools for Visual Studio)を使用して、プロジェクトから Oracleに接続する場合、 OracleClient用に設定した tnsnames.ora とは別に、ODT用の tnsnames.oraを用意する必要があります。 ODTをデフォルトのパスにインストールしていた場…

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

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

Windows:テキストファイルの文字列を検索する

Windowsにて、テキストファイルから特定の文字を検索する場合、PowerShellを使うと便利です。 sls [検索したい文字列] [検索するファイル] (使用例) sls "SearchString" *.txt (使用例:日本語の検索)※SJIS sls "日本語" *.txt -Encoding default (使用…

Windows:ネットワークに繋がっているけど、外部からpingが通らない

以下の手順で、外からpingが通るようになります。 コントロールパネル→Windowsファイアウォール→詳細設定→受信の規制 「ファイルとプリンターの共有(エコー要求・ICMPv4 受信)」にて、右クリックし、「規制の有効化」を選択。 ICMP(Internet Control Mess…

Hyper-V:ゲスト端末をフルスクリーンで表示

<環境> ホスト:Windows 10 pro ゲスト:Windows 7 pro Hyper-VでゲストOSをフルスクリーンで表示する事は、正攻法では無いっぽい。 解像度を変えると出来るけど、それだと柔軟性に欠ける。 代替策として、ゲストOSに「リモートデスクトップ接続」を使用す…

PHP:マルチバイト関数(mb_xx)実行時に「Uncaught Error: Call to undefined function」が発生した時の対処

PHP

「mb_」で始まるマルチバイト関数(mb_strlenなど)を実行した時に、以下のエラーが出た時の対処。 Uncaught Error: Call to undefined function ... php.iniファイルに、以下の設定を追加する。 extension=php_mbstring.dll 編集後、webサーバを再起動。 ph…

DENSOハンディターミナル:スキャンディスクの結果、不正なファイルを発見した時の対処

DENSOハンディ―ターミナルのBHシリーズを起動時に、以下のメッセージが出た時の対処。 スキャンディスクの結果、不正なファイルを発見しました. 詳細は、"$$BRKLST.SYS"を参照してください 何らかの原因でファイルが破損した時に、時々発生する。 <操作> …

Oracle:主キーの内容を変更

プライマリキーを編集するコマンドは無いみたいなんで、いったん削除した後に、もう1回作成する。 alter table <テーブル名> drop constraint <主キー制約名>; alter table <テーブル名> add constraint <主キー制約名> primary key <列名>; 再作成時にエラ…