0

私は wpf や C# 言語に精通していませんが、xaml コードを生成したいと考えています。それは概念言語モデル (DSL) からの cs コードです。xaml タグと cs コードを生成し、それらを自分のデータにバインドするためのテンプレートをたくさん作成しました。 MVVM を使用したモデル。たとえば、xaml ファイルの cs クラスを作成するためのテンプレートは次のとおりです。

namespace $domain
{
    /// <summary>
    /// Interaction logic for $name.xaml
    /// </summary>
    public partial class $name : Window
    {
        public $name()
        {
            InitializeComponent();
        }
    }
}

私の質問は、xaml ファイルの cs クラスを生成するには、コードのこの部分で十分ですか? InitializeComponent メソッドはどこにありますか?

これは私のxamlテンプレートです

<Window x:Class="$domain.$name"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:vm="clr-namespace:$dmdomain"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="$title" Height="350" Width="525">
    <Window.DataContext>
        <vm:$dataModel />
    </Window.DataContext>
    $content
</Window>
4

1 に答える 1

3

ご覧のとおり、クラスは を継承してWindowいます。

これをチェックしてみてください: http://en.csharp-online.net/XAML%E2%80%94Code-Behind_Class

抜粋:

InitializeComponent() メソッドは、アプリケーションのコンパイル時に生成されるため、ソース コードには表示されません。基本的に、InitializeComponent() が行うことは、System.Windows.Application クラスの LoadComponent() メソッドを呼び出すことだけです。LoadComponent() メソッドは、アセンブリから BAML (コンパイルされた XAML) を抽出し、それを使用してユーザー インターフェイスを構築します。BAML を解析すると、各コントロールが作成され、そのプロパティが設定され、イベント ハンドラーがアタッチされます。

于 2012-07-09T05:35:43.797 に答える