INotifyPropertyChanged 属性
INotifyPropertyChanged
型は、MVVM サポート コードを既存の型に挿入できるようにする属性です。 その目的は、他の関連属性 (ObservableObject
および ObservableRecipient
) とともに、これらの型の同じ機能が必要であるが、ターゲットの型が既に別の型から実装されている場合に開発者をサポートすることです。 C# では多重継承が許可されていないため、代わりにこれらの属性を使用すると、MVVM Toolkit ジェネレーターに同じコードをこれらの型に直接追加させ、この制限を回避できます。
Note
注釈付き型が機能するためには、部分クラス内にある必要があります。 型が入れ子になっている場合は、宣言構文ツリー内のすべての型にも部分として注釈を付ける必要があります。 そうしないとコンパイル エラーが発生します。ジェネレーターは、要求された追加コードを使用してその型の別の部分宣言を生成できないためです。
Note
これらの属性は、ターゲット型が同等の型 (たとえば、ObservableObject
から) を継承できない場合にのみ使用されることを意図しています。 可能な場合は、継承することをお勧めします。これにより、最終的なアセンブリに重複するコードが作成されることが回避され、バイナリ サイズが削減されます。
プラットフォーム API:
INotifyPropertyChanged
、ObservableObject
、ObservableRecipient
使用方法
これらの属性の使用は非常に簡単です。部分クラスに追加するだけで、対応する型のすべてのコードがその型に自動的に生成されます。 たとえば、次を考えてみましょう。
[INotifyPropertyChanged]
public partial class MyViewModel : SomeOtherType
{
}
これにより、MyViewModel
型への完全な INotifyPropertyChanged
実装が生成され、詳細を減らすために使用できる追加のヘルパー (SetProperty
など) が完成します。 さまざまな属性の簡単な概要を次に示します。
INotifyPropertyChanged
: インターフェイスを実装し、プロパティを設定してイベントを発生させるためのヘルパー メソッドを追加します。ObservableObject
:ObservableObject
型からすべてのコードを追加します。 概念的にはINotifyPropertyChanged
と同等であり、主な違いはINotifyPropertyChanging
も実装していることです。ObservableRecipient
:ObservableRecipient
型からすべてのコードを追加します。 特に、これをObservableValidator
から継承する型に追加して、2 つを組み合わせることができます。
例
MVVM Toolkit
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示