かずきのBlog@hatena

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

2016-04-01から1ヶ月間の記事一覧

ReactivePropertyの後始末

久しぶりのReactivePropertyネタです。 ReactiveProperty, ReadOnlyReactiveProperty, ReactiveCommand等は、地味にIDisposableを実装しています。 IDisposableを実装しているということは、Disposeをしないといけないということになります。 Disposeしなく…

HoloLens開封の儀という夢のような世界 #HoloLensJP

本日カルフォルニアにも支社のある、エクセルソフトさんでHoloLensの開封の儀に参加してきました。 XLsoft エクセルソフト : C++、Fortran、Java、.NET、Excel、Web、PDF、セキュリティ ソフトウェアなど、世界中の優れた開発ツールを販売 HoloLens 箱はシッ…

Xamarin.Forms + Prism.Formsでダイアログを出す

Prism.Formsでは、IPageDialogServiceというインターフェースが提供されていて、ダイアログの表示もばっちりViewModelで出来るようになっています。 IPageDialogServiceには、DisplayAlertメソッドと、DisplayActionSheetメソッドが定義されています。Displa…

UWPでBindingのAncestorTypeを指定したい

UWP

出来ません。 なので疑似的にやるBehaviorを作ってみました。以下のような感じです。 using Microsoft.Xaml.Interactivity; using System; using System.Reflection; using Windows.UI.Xaml; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Media; name…

UWPのListBox/ListViewで、選択状態によって見た目を変える

UWP

選択されてるときには、何かを出したいとか出したくないとか、そういう要件です。 まずは、バインドされてる要素が自分は今選択されているのかどうかを知っておくと話が早くなります。それについては、以下の記事を参照。 blog.okazuki.jp あとは、このIsSel…

ReactiveProperty v2.7.2をリリースしてました

www.nuget.org ReadOnlyReactiveCollectionが、過負荷のときに処理順番がおかしくなることがあるという報告がきたのでなおしました。

Xamarin.Forms + Prism.FormsでMasterDetailPageを使うには

ytabuchi.hatenablog.com 上記記事をPrism.Formsを使ってやるとどうなるだろうという奴です。 まず、Prism MasterDetailPage (Forms)でRootPageという名前のページを作ります。 続けて、メニュー部を担当するMenuPageをPrism ContentPage (Forms)で作ります…

Xamarin.Forms + Prism.Formsで画面遷移DeepDive

Prism.Formsは、地味にネストした画面遷移みたいなのをサポートしています。 画面遷移のINavigationService#Navigateメソッドに渡すURLに"/HogePage/FugaPage/BarPage?id=10"みたいに/で区切ってページ指定が出来ます。 最初が/だと絶対パスになるっぽくて画…

Xamarin.Forms + Prism.FormsのMVVMの基本的なクラス

変更通知用のINotifyPropertyChangedとコマンド用のICommand実装クラスが提供されています。 INotifyPropertyChangedの実装クラス BindableBaseクラスになります。SetPropertyというメソッドがあって、変更通知プロパティを以下のように定義できるようになっ…

Xamarin.Forms + Prism.FormsでViewModelから画面遷移をする

Prism.Formsのプロジェクトを新規作成します。 Prism ContentPageを1つ追加します。NextPageという名前で作りました。こんな感じで。

Xamarin.Forms + Prism.FormsでVとVMを結びつける

Prism.Formsを使えば簡単にMVVMのViewのBindingContextにViewModelを設定できます。Hello worldでもやったっちゃやりましたが、もう一度改めてやってみようと思います。 VとVMを紐づけるには、ViewModelLocatorというクラスを使用します。ViewModelLocatorク…

Xamarin.Forms + Prism.FormsでViewの登録

Prism.Formsを使ってViewを作成するには、Views名前空間にXAMLの形式で作るのが素直でいい感じです。 Viewは、利用可能にするには、Views名前空間に作成するのに加えてAppクラスのRegisterTypesメソッドでUnityのコンテナに登録する必要があります。この登録…

XamarinでPrismを使ったHello world

PrismってXamarinにも対応してるんですよね(Previewですけど)ということで、Hello worldしながら、基本的な手順をやっていこうと思います。 プロジェクトの新規作成 まず、プロジェクトの新規作成を行います。Cross-Platform/Blank App (Xamarin.Forms Por…

UWPのPivotで左右の余白を0にする

UWP

Pivotコントロールを使うと、コンテンツを表示するところの左右に余白が作られてしまいます。 こいつを消したい!というときにどうするかというと… 方法1 PivotItemのMarginを0に設定する。 PivotItemの数が固定で、自分PivotItemを置いてるだけならこれがお…

Global Azure Boot Camp in Japan 2016でLTしてきました

Azure Data Lakeのはまりどころという感じでLTしてきました。 20160416 Azure Data Lakeのはまりどころ from 一希 大田 www.slideshare.net 資料を公開しておきます。

WPFのDataGridの左上を押しても全選択したくない

WPF

というときどうするか。ControlTemplateをいじりましょう(完 WPFのいいところはControlTemplateで、完全にコントロールの見た目をカスタマイズする余地が残されてるという点ですが、WPFのプロパティの範囲でできないカスタマイズとかが出てきたらControlTem…

Prism.Wpfのプロジェクトテンプレート

WPF

PrismのWPFとXamarin.Forms(こっちはまだPreview)には、プロジェクトテンプレートが提供されています。 拡張機能でPrismで検索すると、Prism Template Packというものがヒットします。 こいつをインストールすると、Prism.Unityを使ったプロジェクトテンプ…

ASP.NET WebApiのGETパラメータにオプショナルのパラメータを指定するには

デフォルト値を指定すればいいみたいです。メモメモ。 // hogeは必須で残りはオプション public IHttpActionResult Get(string hoge, string foo = null, string bar = null) { ... }

UWPでSplitViewの左側のページ名のリストと右側の実際の表示されてるページを同期させる

UWP

Prism使ってやってみましょう。UWPアプリを作ってPrism.Unityを追加してAppクラスを書き換えます。 XAML側

WPFでListBoxで要素が表示されてるか確認してみる

WPF

最適解じゃなさそうだけどこんな感じで…。

JSON.NET使ってみる

C#

JObjectの使い方を勉強してみた。 var j = new JObject(); j.Add("Item1", new JObject()); j.Add("Item2", new JObject()); j.Add("Item3", new JObject()); こういう感じで Console.WriteLine(JsonConvert.SerializeObject(j)); とすることで { "Item1": {…

UWPでバックグラウンドタスクとフォアグラウンドの処理の連携方法

UWP

UWPのバックグラウンドタスクとフォアグラウンドの処理を連携させるために、IBackgroundTaskRegistrationのProgressイベントとCompletedイベントが定義されています。 例えば、TimerTaskという名前のバックグラウンドタスクのProgressイベントとCompletedイ…

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

www.nuget.org こんな意見をいただいたので @okazuki BusyNotifier から IsNotBusy(IsReady?) as ReactiveProperty が得られると嬉しいですね。理由はこれ→ https://t.co/SjGC0SHtzu です。— あめいスピナーデコ (@amay077) 2016年4月8日 ちょっと機能を追加…

ReactivePropertyで2度押し防止/ReactiveProperty v2.7.0をリリースしました

2度押し防止のための機能を追加しました。 www.nuget.org 名前はBusyNotifierです。 こんな感じで使います。 public class MainWindowViewModel { private BusyNotifier BusyNotifier { get; } = new BusyNotifier(); public ReactiveProperty<string> Output { get;</string>…

Blog記事連続100日書き続けて変わったこと

無い。 ということで、年始に365記事以上書くという目標を立ててるのですが、とりあえず100日という1つの区切りを迎えることが出来ました。1日1記事書けば達成じゃない?という思惑で始めたのですが、1日1記事以上のペースで書き続けているっぽく、かなり貯…

UWPでSuspendingの後にOSによって終了されずに復帰したときに処理をしたい

UWP

そんなときはAppクラスのResumingイベントで処理を行います。 Application.Resuming Event (Windows)

UWPのListViewのItemTemplate内のボタンをクリックしたときにPageのDataContextにセットしたViewModelのメソッドを呼んでかつ押された行のデータが知りたいコマンド編

UWP

blog.okazuki.jp 初音さんがコマンドの場合のを教えてくれました。InvokeCommandActionを使えばこういう感じでいけます。 VMをコマンドに変更して using Prism.Commands; using Prism.Mvvm; using System; using System.Collections.Generic; using System.C…

UWPのListViewのItemTemplate内のボタンをクリックしたときにPageのDataContextにセットしたViewModelのメソッドを呼んでかつ押された行のデータが知りたい

UWP

blog.okazuki.jp 続きです。 senderのDataContextを引数に渡してくれるようなCallMethodActionを自作すればいいですね。 using Microsoft.Xaml.Interactivity; using System.Reflection; using Windows.UI.Xaml; namespace App9 { public class TransferSend…

UWPのListViewのItemTemplate内のボタンをクリックしたときにPageのDataContextにセットしたViewModelのメソッドを呼ぶ

UWP

ということがしたいとします。 ListViewItemのDataContextは、項目の要素になってるのでひと手間必要になります。 こんな感じのViewModelがあるとして。 public sealed partial class MainPage : Page { public MainPageViewModel ViewModel => this.DataCon…

ReactivePropertyで2度押し防止

tamafuyou.hatenablog.com qiita.com CountNotifierを使うケースで。CountNotifierは、カウントを数えるものですが、Emptyの時だけというようにSelectかましてToReactiveCommandすると、多重実行防止にも使えます。こんな感じで。 public class MainWindowVi…