2011-08-16 148 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