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 回答