質問するログイン新規登録

回答編集履歴

2

見直しキャンペーン中

2023/07/23 03:56

投稿

TN8001
TN8001

スコア10118

answer CHANGED
@@ -1,23 +1,23 @@
1
- `SetProperty`は`INotifyPropertyChanged`を少しでも楽に書けるようにするものです。
1
+ `SetProperty`は`INotifyPropertyChanged`を少しでも楽に書けるようにするものです。
2
- 各人いろいろやっていましたが、今は記事のような作りに収束していると思います。
2
+ 各人いろいろやっていましたが、今は記事のような作りに収束していると思います。
3
-
3
+
4
- `INotifyPropertyChanged`自体については、いろいろ記事があると思います。
4
+ `INotifyPropertyChanged`自体については、いろいろ記事があると思います。
5
- `ViewModel`の変更時にイベントを出すことによって、(バインドしていれば自動的にイベント購読している)`View`が表示を更新できるようになる仕組みです。
5
+ `ViewModel`の変更時にイベントを出すことによって、(バインドしていれば自動的にイベント購読している)`View`が表示を更新できるようになる仕組みです。
6
-
6
+
7
- 元の値と同じ場合意味がないので`PropertyChanged`を発砲しません。
7
+ 元の値と同じ場合意味がないので`PropertyChanged`を発砲しません。
8
- なので`CanExecuteChanged `も出さなくていいでしょう。
8
+ なので`CanExecuteChanged `も出さなくていいでしょう。
9
-
9
+
10
- 変更した場合trueになるので、↓としてあるほうが無駄イベントが飛ばずいいでしょうね。
10
+ 変更した場合trueになるので、↓としてあるほうが無駄イベントが飛ばずいいでしょうね。
11
-
11
+
12
- ```C#
12
+ ```cs
13
- if(this.SetProperty(ref this.input, value))
13
+ if(this.SetProperty(ref this.input, value))
14
- this.ConvertCommand.RaiseCanExecuteChanged();
14
+ this.ConvertCommand.RaiseCanExecuteChanged();
15
- ```
15
+ ```
16
-
16
+
17
- > RaiseCanExecuteChangedとはどのようなメソッドでしょうか。
17
+ > RaiseCanExecuteChangedとはどのようなメソッドでしょうか。
18
-
18
+
19
- [ICommandの実装クラスも用意しないとなんだね - かずきのBlog@hatena](https://blog.okazuki.jp/entry/20120421/1335015512)
19
+ [ICommandの実装クラスも用意しないとなんだね - かずきのBlog@hatena](https://blog.okazuki.jp/entry/20120421/1335015512)
20
- の`RaiseCanExecuteChanged()`を見てください。
20
+ の`RaiseCanExecuteChanged()`を見てください。
21
-
21
+
22
- `SetProperty`と似ていると思いませんか?
22
+ `SetProperty`と似ていると思いませんか?
23
23
  コマンドの実行可否が変わった(可能性がある)時に呼び出すことによって、例えばボタンの押せる押せないを`View`が変更します。

1

追記

2020/08/14 05:55

投稿

TN8001
TN8001

スコア10118

answer CHANGED
@@ -1,3 +1,9 @@
1
+ `SetProperty`は`INotifyPropertyChanged`を少しでも楽に書けるようにするものです。
2
+ 各人いろいろやっていましたが、今は記事のような作りに収束していると思います。
3
+
4
+ `INotifyPropertyChanged`自体については、いろいろ記事があると思います。
5
+ `ViewModel`の変更時にイベントを出すことによって、(バインドしていれば自動的にイベント購読している)`View`が表示を更新できるようになる仕組みです。
6
+
1
7
  元の値と同じ場合意味がないので`PropertyChanged`を発砲しません。
2
8
  なので`CanExecuteChanged `も出さなくていいでしょう。
3
9
 
@@ -6,4 +12,12 @@
6
12
  ```C#
7
13
  if(this.SetProperty(ref this.input, value))
8
14
  this.ConvertCommand.RaiseCanExecuteChanged();
9
- ```
15
+ ```
16
+
17
+ > RaiseCanExecuteChangedとはどのようなメソッドでしょうか。
18
+
19
+ [ICommandの実装クラスも用意しないとなんだね - かずきのBlog@hatena](https://blog.okazuki.jp/entry/20120421/1335015512)
20
+ の`RaiseCanExecuteChanged()`を見てください。
21
+
22
+ `SetProperty`と似ていると思いませんか?
23
+ コマンドの実行可否が変わった(可能性がある)時に呼び出すことによって、例えばボタンの押せる押せないを`View`が変更します。