From 5edbc7bf7ef80c5655b8ba8ccd6d6f4dfc545823 Mon Sep 17 00:00:00 2001 From: KageShiron Date: Sat, 26 Nov 2016 23:44:01 +0900 Subject: [PATCH] =?UTF-8?q?=E5=8E=9F=E6=96=87=E3=81=AE=E8=A8=82=E6=AD=A3?= =?UTF-8?q?=E7=AE=87=E6=89=80=E3=81=A8=E3=80=81=E8=AA=A4=E8=A8=B3=E7=AE=87?= =?UTF-8?q?=E6=89=80=E3=81=AA=E3=81=A9=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hands-on/readme.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/hands-on/readme.md b/hands-on/readme.md index 6154253..62611a4 100644 --- a/hands-on/readme.md +++ b/hands-on/readme.md @@ -79,7 +79,7 @@ public string Avatar { get; set; } ## 手順 4 : View Model を いじる Xamarin.Forms の view で、どのようにデータを表示するかのすべての機能を、`SpeakersViewModel.cs` が提供します。 -`SpeakersViewModel` は、 Speaker の List と、サーバからスピーカーのデータを取ってくるために呼ばれるメソッド、から構成されています。また、バックグラウンドタスクとしてデータを取って来ようとしていることを示す boolean フラグも持っています。 +`SpeakersViewModel` は、 Speaker の List と、サーバからスピーカーのデータを取ってくるために呼ばれるメソッドから構成されています。また、バックグラウンドタスクとしてデータを取って来ようとしていることを示す boolean フラグも持っています。 ### INotifyPropertyChanged をインプリメントしよう @@ -150,7 +150,7 @@ void OnPropertyChanged([CallerMemberName] string name = null) bool busy; ``` -そして、自動プロパティを作ります。 +そして、プロパティを作ります。 ```csharp public bool IsBusy @@ -327,7 +327,8 @@ ObservableCollection Speakers {get;set;} を作成した場所で、**G public Command GetSpeakersCommand { get; set; } ``` -**SpeakersViewModel()** のコンストラクターの中で GetSpeakersCommand を作成し、使用するメソッドを割り当てます。更に IsBusy プロパティに影響を与える enabled フラグも渡します: +**SpeakersViewModel()** のコンストラクターの中で2つのメソッドを渡して GetSpeakersCommand を作成します。1つ目はコマンドが実行された時に呼び出されるメソッド、2つ目はコマンドが実行可能かどうかを定めるメソッドです。 +どちらのメソッドも下記のようにラムダ式を使って記述することもできます。 ```csharp GetSpeakersCommand = new Command( @@ -335,14 +336,14 @@ GetSpeakersCommand = new Command( () => !IsBusy); ``` -この後修正するのは、私たちが作成した enabled 関数を再評価する IsBusy プロパティをいつセットするか?です。**IsBusy** の **set** でシンプルに **ChangeCanExecute** メソッドを次のように実行します: +続いて、IsBusy プロパティが変化した際、実行可能かどうかを定める関数( `() => !IsBusy` )を再評価したいので、IsBusy プロパティをセットする箇所を修正します。**IsBusy** の **set** でシンプルに **ChangeCanExecute** メソッドを次のように実行します: ```csharp set { busy = value; OnPropertyChanged(); - //Update the can execute + // コマンドが実行可能かどうかを再評価する GetSpeakersCommand.ChangeCanExecute(); } ``` @@ -887,4 +888,4 @@ await Navigation.PushAsync(new DetailsPage(speaker, vm)); ![Modified](image/save01.png) -できあがり! +できあがり! \ No newline at end of file