かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

C#

ReactivePropertyでModelに紐づくViewModelの作り方のパターン

データの入れ物のModelに対するViewModelは大体こんな感じになるよねっていう感じのものを作ってみました。 とりあえず以下のようなイメージです。 ModelはINotifyPropertyChangedを実装した値の入れ物のクラス ViewModelはそれをラップしてVからの入力値を…

ReactiveProperty + Prism.Wpfでリストに表示されてる項目を編集するサンプルを書いてみた

github.com ListBoxに表示されてる項目を選択してボタンを押すとポップアップが出てきて編集するっていう簡単なサンプルです。

ReactivePropertyで、ViewModelのプロパティに変更があったかどうか判別できるようにしたい

プロパティの値が1つでも書き換わってたら判別したい。そういうことはありますよね? ReactivePropertyを使うと、こんな感じで実現できます。(変更があったかというフラグをリセットする機能つき) まず、ReactivePropertyに変更があったときにtrueを発行す…

Windows 10のUWPでInkCanvasを使って手書き文字認識をする

思ったより簡単だったのでメモメモ。因みにWindows 8のころはInkManager使ったりしてちょっとめんどかったです。 InkCanvasを置く 描画や消したりとかはInkCanvasにお任せです。 <InkCanvas x:Name="myInkCanvas" /> 認識処理を書く 認識にはInkRecognizerContainerを使います。RecognizeAsync</inkcanvas>…

RxとReactivePropertyを使って、WPFでUnidirection Data Flowを実現するを真似してみた

ありがたいことに最近ReactivePropertyを勧めたら使い始めて頂けました。 qiita.com このコードを大げさに書いたらどうなるかなぁというのでやってみました。 ということでModel部分。 なんかきっかけがあるタイミングで、インクリメントし続けるだけの奴。 …

競技プログラミングの問題をしてみた

C#

chomado.com @chomadoさんの参加したという競技プログラミングの問題を解いてみました。 たまには頭の体操。 B問題 英小文字からなる 12 個の文字列 S1, S2, …, S12 が入力されます。 これらの文字列のうち、文字 r が含まれるものの個数を数えてください。 …

WPF 4.5入門をKindleに公開しました

SlideShareで無料で公開してるPDFをKindleで1205円で公開を始めました。 www.amazon.co.jp Kindleでどうしても読みたいという方や、これくらいなら払ってやってもいいかという人はぽちってくれると純粋に私が喜びます。 SlideShareのほうは、引き続き公開し…

Universal Windows Platform appでのコンパイル時データバインディング(x:Bind)

UWP appでは、従来のデータバインディングに加えてコンパイル時データバインディングというものが追加されています。コンパイル時データバインディングは、名前の通り従来は実行時にやっていた色々な処理をコンパイル時に行ってしまうというものです。これに…

Prism 6.0のRegionBehaviorについて書きました

github.com

Universal Windows Platform appのAppService

Windows 10 TPのUniversal application platformでのAppService - かずきのBlog@hatenaokazuki.hatenablog.com 上記はInsider Preview時代の記事ですが作り方は試してみたところ変わっていませんでした。Package.appxmanifestがGUIで作れるようになってたの…

IgniteUIのigGridでテンプレート列を使う

ASP.NET MVCで使う方法をメモっとく。 @using Infragistics.Web.Mvc @{ ViewBag.Title = "Index"; } <script type="text/javascript"> function format(x) { return x + "歳"; } </script> <h2>Index</h2> @(Html.Infragistics() .Loader() .CssPath(Url.Content("~/Content/css")) .ScriptPath(Url.Content("~…

Universal Windows Platform appのListViewで追加されたアイテムに自動でスクロールさせたい

ということをしたいというケースがありました。 やり方としては、ItemsSourceがINotifyCollectionChangedだったら追加されたCollectionChangedを購読して追加された要素に対してScrollIntoViewしてやるだけです。 とりあえず、こういうBehaviorを作ってListV…

Universal Windows Platform appでモバイルの時のみアプリバーを出す

電話のときはAppBarを出して、PCのときは出したくない!そんなときもあるでしょう。 ということでやり方です。 AnalyticsInfo.VersionInfo.DeviceFamilyでデバイスファミリーが取得できます。この値が"Windows.Mobile"のときはモバイルで動いてるということ…

Universal Windows Platform appでタイトルバーに戻るボタンを出す方法 その2

Universal Windows Platform appでタイトルバーに戻るボタンを出す方法 - かずきのBlog@hatenaokazuki.hatenablog.com 先日、UWP appのタイトルバーに戻るボタンを出す方法を書きましたが、ストアのアプリを見てると戻れないときは戻るボタン出さないように…

Universal Windows Platform appでタイトルバーに戻るボタンを出す方法

UWP appで一部アプリにタイトルバーに戻るボタンが出てるものがあります。 例えばストアのアプリとかそうなってます。 これをやるには、SystemNavigationManagerクラスを使います。 Appクラスの起動処理のどこかにこの1行を足します。 SystemNavigationMana…

Prism for UWP(仮)を見てみた

Prismの中でうごめいているUniversal Windows Platform app対応版Prismについてちょっとリポジトリをのぞいてみました。基本的に、Prism for Windows Runtimeの流れを汲む感じで、使い方に差は無さそうです。 大きな変更点 一番大きな変更点は、MvvmAppBase…

ReactivePropertyでViewModelに紐づくModelを差し替えるときのパターン

んー? 変更通知プロパティのメンバを持つModelで、そのメンバがViewModelのReactivePropertyに接続されてて、そのModelのインスタンス自体を差し替えたい時ってどうすればいいんだ・・・?— たき(=゚ω゚)ノ (@taky_xi2) 2015, 6月 20 という呟きを見つけたので…

暇なので手抜きheadコマンドをC#で

C#

using System; using System.IO; using System.Linq; namespace head { class Program { static void Main(string[] args) { if (!args.Any()) { Usage(); return; } string fileName = null; int lineNumber = 10; if (args.Length == 1) { fileName = args…

C# 6.0時代の変更通知プロパティの書き方

C#

2018/01/05 追記 こんなん書きました。 blog.okazuki.jp 本文 VS2015 RC時点の情報に基づいて書いています XAML系のアプリを書くときに必須となるINotifyPropertyChangedインターフェースを実装した上での、変更通知機能を持ったプロパティがあります。こい…

ReactiveProperty v2.2をリリースしました

ReactivePropertywww.nuget.org v2.2 破壊的変更 ObserveElementReactiveProperty 拡張メソッドを削除しました。 Add ObserveElementObservableProperty 拡張メソッドを追加しました。 概要 ObserveElementReactivePropertyメソッドが、ReactivePropertyの方…

7つのサンプルプログラムで学ぶRxJavaの挙動のコードをC#にポーティング

2記事続けて人の記事にのっかった記事になります。 7つのサンプルプログラムで学ぶRxJavaの挙動 - クックパッド開発者ブログtechlife.cookpad.com 解説は元記事がとても丁寧なのでそちらを一読することをお勧めします!C#固有の話とかあったらこちらで補足し…

Windows 10 TPのUniversal application platformで別アプリ起動時にパラメータを渡す

Windows 10 TP時点の情報です 以下の記事の続きです。 Windows 10 TPのUniversal application platformで別アプリを起動する - かずきのBlog@hatenaokazuki.hatenablog.com アプリを起動するだけでは、連携としては弱いので値を渡したいと思います。起動時に…

Windows 10 TPのUniversal application platformで別アプリを起動する

Windows 10 TP時点の情報です 今までもURIでアプリを起動とかってできたんだっけ? Windows 10 TPでは、相手アプリを指定して起動するとかいろいろ強化されています。起動のしかたは簡単。起動対象のアプリのFamilyNameと起動するためのプロトコルがわかって…

WindowsストアアプリでUIの要素の高さとかが取れるタイミングで一回だけ処理をしたい

Loadedだとまだなんですね。 public MainPage() { this.LayoutUpdated += this.MainPage_LayoutUpdated; } private void MainPage_LayoutUpdated(object sender, object e) { this.LayoutUpdated -= this.MainPage_LayoutUpdated; // ここで処理をする } ふ…

Windows 10 TPのUniversal application platformでのAppService

Windows 10 TP時点の情報です 超参考 Windows 10 Preview のAppService を作ってみる - tmytのらくがきtmyt.hateblo.jp Windows 10から、AppServiceというアプリのバックグラウンドでサービスを立ち上げることが出来るようになりました。サービスを提供する…

Windows 10 TPでバックボタンのように電話固有機能などを記述する方法

Windows 10 TP時点の情報です Windows 8.1までのユニバーサルアプリでは#if ~ #endifを使ってコンパイル時に有効、無効を切り替えるスタイルでした。Windows 10 TPのUAPでは、実行時に機能の有無を調べて対応するようになりました。これによって、メソッド…

Windows 10のUniversal appでBehaviorを使う方法

2015/03/25 Windows 10 TP段階の情報です 某所でビヘイビア何処?って聞いたらリリースノート嫁とのことで…。 @M3rken they're supported, just need a bit manual work, see #win10 Tools' release notes - https://t.co/cMrC3TnYdB— Andrej Tozon (@andrej…

Reactive Extensionsのはじめかた

最近Reactive Extensionsがバズってきてて、2年以上前に公開したReactive Extensionsのv1のメソッドを大体網羅したPDFが割と参照されてます。 Reactive extensions入門v0.1 from 一希 大田 www.slideshare.net 個人的な入門は、そこに全部書いたので今更感も…

DataGridComboBoxColumnのItemsSourceのバインド方法

久しぶりのWPFネタです。小ネタ。 DataGridComboBoxColumnクラスを使うと、簡単にDataGridにComboBoxを設定できます。しかし、DataGridComboBoxColumnクラスのItemsSourceプロパティをBindingしようとすると、BindingのSourceがWindowのDataContextではなく…

ReactiveProperty v2.1をリリースしました。

BlogのコメントでReadOnlyReactiveCollectionをReadOnlyObservableCollectionから生成できないのは何故?という意見が来てたので、確かに、と思って追加しました。 ReactiveProperty NuGet Gallery | ReactiveProperty 2.1.0 v2.1.0 追加 ReadOnlyReactiveCo…