我不熟悉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>
答案 0 :(得分:3)
如您所见,该类继承了Window
。
您可能需要查看此内容:http://en.csharp-online.net/XAML%E2%80%94Code-Behind_Class
摘录:
您的源代码中不显示InitializeComponent()方法 因为它是在编译应用程序时生成的。实质上, 所有InitializeComponent()都调用LoadComponent()方法 System.Windows.Application类。 LoadComponent()方法 从程序集中提取BAML(已编译的XAML)并使用它 构建您的用户界面。在解析BAML时,它会创建每个BAML 控制,设置其属性,并附加任何事件处理程序。