2009-11-18 64 views
0

假設你有WPF窗口組成的正在使用的DataTemplates/CONTROLTEMPLATES(ItemControls ...) 許多元素,但要看到每DataTemplate中看起來像在VS設計師。 此外,如果您將ControlTemplate定義爲位於另一個文件中的模板,以便能夠使用該內容查看它。WPF的DataTemplate /控件模板和VS2008設計師

有點像MasterPage和ChildElements在ASP.NET中 你總是可以看到你把什麼元素放在一起。

這個可能在WPF? 否則..我對DataTemplate所做的每個更改都可以在編譯和啓動後耗時很長時間才能看到。

謝謝你們..

回答

1

要做到這一點非常簡單,只需設置一個DataContext在構造函數:

public MyUserControl() 
{ 
#if !RELEASE 
    //DataContext = new CustomerList { Customers = new [] { 
    // new Customer { Name = "Contoso", ZipCode = 12345 }, 
    // new Customer { Name = "NorthWind", ZipCode = 12345 }, 
    //}}; 
#endif 
    InitializeComponent(); 
    ... 
} 

請注意,該代碼被註釋掉的事實。當你想看到數據時,只需取消註釋代碼。 #if !RELEASE可以防止您意外地在發佈版中包含示例數據(以及花費任何CPU加載它)。

如果你的樣本數據是很大的,只是把它放在XML或數據庫中,並加載它:

public MyUserControl() 
{ 
#if !RELEASE 
    //DataContext = XmlSerializerManager.Deserialize<CustomerList>(
    // File.ReadAllBytes("CustomerSampleData.xml")); 
#endif 
    InitializeComponent(); 
    ... 
} 

在這兩種情況下,樣本數據會在設計顯示,每當您取消註釋代碼。當執行你的應用程序時,它將被真實數據取代。