最初に.netオブジェクトの "ツリー"を作成できるようにXAMLコンパイラが作成されました.XAMLを使用したMicrosoftでは101のプロジェクトがありました。 XAMLコンパイラはWPFについて何も知らない。
"名前"プロパティはWPFで定義されており、XAMLコンパイラでは知られていません。 WPFはnameプロパティをXAMLコンパイラでサポートされている "Name TAG"と同じにマップします。 "x:name"の "x"は、XAML xmlスキーマで定義されている "name"を使用しています。 "Name"は、指定されたオブジェクトの "name"というプロパティを検索します。詳細はIn WPF, what are the differences between the x:Name and Name attributes?を参照してください。
XAMLコンパイラは、ユーザーコントロールを定義するアセンブリを読み込まなくても、ユーザーコントロールでできることは非常に限られています。アセンブリをロードする前にXAMLをコンパイルする必要があるため、xamlコンパイラは、同じアセンブリに実装されているコントロールのアセンブリを読み込むことはできません。したがって、XAMLコンパイラは、その項目がユーザーコントロールであることさえ知りません。
Properties that are defined on a user control (or its parent class) can therefore not be accessed. “Name” is a property that is defined in the parent (or super-parent) of a custom control.
XAMLコンパイラは「名前はプロパティとして定義されていません」と言うことができます。もしそうであれば、何人の人々が簡単なカスタムコントロールの作業に失敗するか考えてみてください!したがって、XAMLコンパイラには、コードが意味するものを「推測」することにより、より有用なエラーメッセージを出す特殊なケースがあります。その推測は大抵正しいです。
最もシンプルなユーザーコントロール以外のものは、それ自身のアセンブリにする必要がありますが、ユーザーの単純なコントロールは非常に一般的であり、特別なケースが価値のあるものと考えられていました。
'したがって、ユーザーコントロール(またはその親クラス)で定義されたプロパティにアクセスすることはできません。 - それは私には意味がない。基本クラスで定義されている他のプロパティを設定すると、 ' 'が動作するので、コンパイラは 'Name' WPFプロパティの値を同じ方法 –
nevermind