假设你有WPF窗口由许多使用DataTemplates / ControlTemplates 的元素组成(ItemControls ...) 但是,您希望在VS Designer中看到每个DataTemplate的样子。 此外,如果您将ControlTemplate定义为位于另一个文件中的模板,以便能够使用内容查看它。
像ASP.NET中的MasterPage和ChildElements 你总能看到你把哪些元素放在一起。
这个在WPF中是否可能? 否则..在对长时间的编译和启动之后,可以看到我对DataTemplate所做的每一个更改。
谢谢你们..
答案 0 :(得分:1)
Stefan,
我认为您可以通过创建设计时间类来完成此操作,如下面的链接中所述:
希望这会有所帮助。
答案 1 :(得分: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();
...
}
在任何一种情况下,只要取消注释代码,样本数据就会显示在设计器中。执行应用程序时,它将替换为真实数据。