ローカル変数またはグローバル変数が WPF データ バインディングのソースとして許可されない理由について、私はこの点についてグーグルで調べていました。ラッピング プロパティのみにバインドできます。
したがって、問題は、プロパティが変数のラッパーである場合、これらのプロパティが許可され、変数が許可されない理由です。
フードシステムの下で知る必要があります。
ローカル変数またはグローバル変数が WPF データ バインディングのソースとして許可されない理由について、私はこの点についてグーグルで調べていました。ラッピング プロパティのみにバインドできます。
したがって、問題は、プロパティが変数のラッパーである場合、これらのプロパティが許可され、変数が許可されない理由です。
フードシステムの下で知る必要があります。
バインディングに使用されるメカニズム ( PropertyDescriptor、DependencyPropertiesなど) はプロパティのみを使用します。これが、フィールドにバインドできない理由です。プロパティは、検証、変更通知などを提供できます。これは、プロパティを好むもう 1 つの理由です。フィールドはこれらのどれも提供しません。
また、パブリック フィールドを使用することは通常悪い習慣ですが、なぜわざわざフィールドへのバインドを実装する必要があるのでしょうか? それはそれらの悪い慣行を助長するだけです。
まあ、それは完全に真実ではありません。バインディングにフィールドを使用できますが、最初にリソースのように宣言し、バインディング宣言でリソースキーを介してアクセスした後にフィールドを宣言する必要があります。
コードにバインドする場合、プロパティへのバインドは、OnPorpertyChanged
通知も送信できるようにするために行われます。