まあ、私は認めなければなりません、それでも時々XAMLは私には少し不思議に思えます。重要なのは、「何が起こっているのか」と「どのように起こっているのか」を理解するために、C#コードを介してデバッグする(ブレークポイントをたくさん設定する)のが好きだったということです。しかし、オプションではない宣言型XAML構文を使用します。XAMLを操作すること、正確には、XAML宣言でどのように動作するかを「すでに知っている」既存のXAMLコードを操作/理解することに同意すると思います。アプリケーションコードの実行を調査することを知る/学ぶ方法はありません。ですから、私はXAMLを可能な限り詳細に裏返しに見てみることに興味があります。私はXAMLの「学習」について話しているのではなく、基本的なことを知っています。たぶん私は私が物事の種類を明確にするためにいくつかの例を提供することができます
- C#コードと比較して、XMALでオブジェクトを使用すると、オブジェクトはどのようにインスタンス化されますか?それらはマネージヒープに格納されていますか?C#コードでインスタンス化されたオブジェクトと同じ方法ですか?
- データ/コマンドバインディングにマークアップ拡張構文を使用しているときに、プロパティはどのように設定されますか?
- INotifyPropertyChangedタイプのプロパティが更新されると、XAML構文内のBindingインスタンスがそれ自体をどのように更新しますか?そもそも、誰からどのくらい正確に通知されますか?
- ビューモデルは、次のようにTyped DataTemplateを定義することにより、実行時にビューのDataContextとして設定できます
。実際にはどのように発生しますか?論理ツリーの上位にあるDataContextプロパティを検索する以外に、DataContextを設定するためのルールは何ですか?
<DataTemplate DataType="{x:Type viewmodels:AccountsViewModel}">
<views:Accounts/>
</DataTemplate> - テンプレート全体(DataTemplate、ControlTemplate、ItemsPanelTemplate)が実行時にどのように処理/解決されるか。
- などなどなど。
では、XAMLに精通している、経験がある、または専門家である場合、XAMLが「内部」でどのように機能するかを明確かつ深く理解するのに役立つ参照として、何を提案しますか(リンク、記事、ブログ投稿、書籍など)。前もって感謝します。