2011-08-16 107 views
3

我是T4模板中的新成员,我想从T4生成.xaml文件,并从.xml文件中获取一些信息。所以我的问题是:是否可以从T4生成.xaml文件和所有MVVM基础结构,并且可以从T4模板文件调用并生成不同的文件? 是否选择用于生成wpf屏幕的T4模板的最佳方式?如果不是,我们如何快速生成通用屏幕?使用模板生成.xaml和.xaml.cs T4

回答

4

我看到5个问题:

  1. 是否有可能产生的.xaml文件,并从T4所有MVVM基础设施?
  2. 是否可以从T4模板文件中调用不同的文件?
  3. 是否可以从T4模板文件生成不同的文件?
  4. 是否选择用于生成wpf屏幕的T4模板的最佳方式是?
  5. 如果不是,我们如何快速生成通用屏幕?

这里是我的答案:

  1. 是的,其实我相信T4非常适合产生通常需要MVVM锅炉板代码。
  2. 是的,如果你通过这个问题意味着你想有一个可以重复使用的模板库。您在T4中使用代码重用的机制是您引用的常规程序集或指令(非常类似于PHP或ASP中包含的程序代码)
  3. 是,但我建议您不要做这个。试图使这些模板显着复杂化,您应该问自己为不同的生成类设置不同的文件有什么好处。在某些情况下,您可能需要单独的文件(即C#和XAML必须存在于不同的文件中),但是我会建议使用两个不同的模板文件,其中包含不同的#@ output#>指令。
  4. 我不明白这个问题,也许你可以详细说明一下吗?
  5. 听起来像LightSwitch可能是你感兴趣的。您仍然可以使用T4生成屏幕所需的模型片段。

总之,如果您正在寻找有关如何使用T4的良好资源,请访问T4上的Oleg Sych's blog这是非常好的

+1

T4工具箱(http://t4toolbox.codeplex.com)实际上很好地回答了#3,并带有完全相反的答案 - 它专门用于*生成多个工件。它由Oleg Sych撰写(主要)。 – GalacticCowboy

+2

@GalacticComboy - 我当然可以看到一些情况下,当你想每个模板有多个工件,但恕我直言,我没有看到每个类生成一个工件的值,例如,即使这是手写代码的推荐模式。恕我直言,生成和手写代码的好模式并不总是重叠。 – FuleSnabel

+0

对于代码而言,这并非XAML。 – GalacticCowboy