ReactivePropertyオーバービューを更新しました。
blog.okazuki.jp「そのほかにも」という箇所から簡単にですが、ReactivePropertyで追加しているIObservableの拡張メソッドで、紹介していないものを書いてみました。
View ArticlePrism.WpfのApp.configによるModuleCatalogの構成の仕方をPrism自習用リポジトリに追加しました
Prism Template Packを使うと簡単にApp.configによるModuleCatalogの構成ができるということで、今まで書いてなかったそこの部分についてPrism自習用リポジトリに追記しました。github.com
View ArticleJXUGC 13回で発表してきました #JXUG
「Prism.Formsについて」というタイトルで、発表してきました。Prism.Formsについて from 一希 大田www.slideshare.netライブコーディング失敗しなくてよかった。
View ArticleXamarin版PrismでViewとViewModelの紐づけルールを変える
PrismはデフォルトでViews名前空間にあるViewとViewModels名前空間にあるViewModelを紐づける機能を持っています。この機能を有効化するには、PageのXAMLに以下の2行を追加します。xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"...
View ArticleReactivePropertyで自動でUIスレッドにイベント発行を変えるのを抑止する
普通はいいんですが、UWPとかでマルチウィンドウとか、共有コントラクトとか使うとUIスレッドが複数生成されて、UIスレッドが1つという前提に立ってるReactivePropertyだと、ちょっと嫌な感じになってしまいます。そんなときは、Appクラスの初期化処理で以下の1行を追加すると、現在のスレッドでイベントが発行されるようになります。// 余計なスレッド切り替えは自動でしないで...
View ArticleReactivePropertyで自動でUIスレッドにイベント発行を変えるのを抑止する その2
blog.okazuki.jp上記記事では、ViewModelの中でSynchronizationContextSchedulerを作成していましたが、これだと単体テストが辛いということになります。これをいい感じにするには、ちょっと工夫がいるのですが…。例えばPrism.Unityを使うと以下のようにViewModelのコンストラクタの引数に渡すものを上書きすることができます。Unityの機能ですね...
View ArticleC#で好きな機能
Blogネタが尽きたので小ネタを。C#でプログラムする時によく使う便利機能を3つ挙げたいと思います。async/awaitやはりC#といったらこれですよね。 非同期処理を簡単に書ける。blog.okazuki.jpこれがない言語でのプログラミングは、結構ストレスです。コールバック地獄になって。文字列挿入$使うやつですね。xxxFormat系メソッドを全て殺してしまうほどのインパクトがある。...
View ArticleReactivePropertyのコードスニペット
ReactivePropertyをインストールすると、地味にコードスニペットもNuGetパッケージ内に入ってます。ただインストールはされないので自分でインストールが必要です。コードスニペットマネージャーからpackages/ReactiveProperty.2.x.x/Snippet/csharp6フォルダにある以下のファイルをインストールします。csharp5フォルダは、C#5.0向けです。Rea...
View ArticleLINQのメソッド構文、クエリ式の構文
LINQってメソッド構文とクエリ式の構文の2つがあります。どっち使います?という話ですが個人的な見解として、メソッド構文がLINQの全機能にフルアクセスできるという点でメソッド構文を使用しています。 LINQのメソッド構文とクエリ式の構文の対応は以下のページにまとまっています。Query Expression Syntax for Standard Query...
View ArticleXamarin.FormsでInfragistics製コンポーネントのチャートコントロールを使ってみる
InfragisticsさんはXamarin.Forms向けのコントロールも提供しています。今時点だとチャート系コントロールを提供しているみたいなのでちょっと使ってみましょう。Xamarin.Forms...
View ArticleUWPのItemsStackPanelで画面外に生成される項目の要素数を制御する
UWPのListViewって仮想化されますよね? そのとき画面から見えてない領域にどれくらいの要素を生成されるのかという話しですが、これはCacheLengthプロパティで制御できます。デフォルトは4で、このとき上に表示領域の4個ぶん、下に表示領域の4個ぶん、表示領域も含めて合計9個ぶんの項目が生成されることになります。ItemsStackPanel.CacheLength property -...
View ArticleUWPでgeneric.xamlを開く方法
基本的な色とかが定義されてるgeneric.xamlですが、こいつをたまに見たいことがあります。 そんなときどうするか?プロジェクトを新規作成してMainPage.xamlのApplicationPageBackgroundThemeBrushでF12を押します。そうするとgeneric.xamlをさくっと開けます。あとは見たい定義を見るだけ。
View ArticleUWPでWindowのアクティブ状態を取りたい
ほしいときにぱっととる事はできなさそうです。ということで、Window.Current.CoreWindowのActivatedイベントでとっておく必要があります。こんな感じで// どこかでイベントを購読して Window.Current.CoreWindow.Activated += CoreWindow_Activated; // こんな感じで状態をとっておくprivate...
View ArticleHoloLensおさわり会の紹介
先日もBlogに書いた、Slikyfeelさんの開催しているHoloLensおさわり会ですが、日本各地で開催されてます。直近は、今夜申し込み締め切りの岡山で開催のやつです。hololens.connpass.comそのほかに、名古屋、博多、愛媛・松山など、結構いろんなところで触れます。hololens.connpass.comHoloLensの感想HoloLensですが、当たり前にホログラフィックが...
View ArticleEntity Framework Core RC2がリリースされたみたいです
blogs.msdn.microsoft.com待ちに待ったリリースに向けてあと一歩といったところですね!UWPで使うときに必要だったおまじないも消えてるっぽい(未確認だけどドキュメントに記載されてない)ので気軽にUWPで使えるようになったっぽいです。UWPでSQLiteを使うときの選択肢として期待大ですね。
View Articleうまくいかない…DataFactoryを使ってSQL Databaseの中身をData Lake Storeにコピーする
DataFactoryでコピーするだけなのにうまくいかない何が足りてないんだろう要調査。誰か教えて。やったことまず、East US2(DataLakeの置き場の都合)にData Lake StoreとSQL Databaseを作成します。SQL Database側に以下のようなテーブルを定義しておきます。CREATETABLE [dbo].[People] ( [Id] INT NOTNULL...
View ArticleDIコンテナのUnityで使用されるコンストラクタを指定する
InjectionConstructorAttributeを使用します。指定しない場合はコンストラクタ引数の一番多いものが使われます。例えば以下のようなケース。publicclass Hoge { public Hoge(Foo foo, Bar bar) { } public Hoge(Foo foo) { } } だと、Foo foo, Bar...
View ArticleUWPで一定間隔で表示が切り替わるPivotを作ろう
小ネタです。ViewModelあたりにSelectedIndexというプロパティをはやして、これを一定時間でインクリメントするようにします。 UIスレッド上でやるのがポイントですね。DispatcherTimerかRx使うのがいいでしょう。(RxのInterval使う場合はObserveOnでUIスレッドに持ってくる)using Prism.Mvvm; using System; using...
View ArticleUWPでスクリーンショットを取らせないようにする
今日のde:codeのセッションで知ったことをメモしておきます。UWPでは、以下のプロパティをfalseに設定することでスクリーンショットを取られることを抑止できます。 画面キャプチャされて、機密情報漏えいなくなりますね!// これを入れる ApplicationView.GetForCurrentView().IsScreenCaptureEnabled = false;...
View Article