WPF DataTemplate / ControlTemplate и VS2008 конструктор - PullRequest
0 голосов
/ 18 ноября 2009

Предположим, у вас есть окно WPF, состоящее из многих элементов, использующих DataTemplates / ControlTemplates (ItemControls ...) Но вы хотите увидеть как выглядит каждый DataTemplate в VS Designer . Более того, если вы определяете шаблон ControlTemplate как шаблон, расположенный в другом файле, чтобы иметь возможность просматривать его с содержимым.

Что-то вроде MasterPage и ChildElements в ASP.NET Вы всегда можете увидеть, какие элементы вы собрали.

Возможно ли это в WPF ? В противном случае ... каждое изменение, которое я делаю в DataTemplate, можно увидеть после длительной компиляции и запуска.

Спасибо, ребята ..

Ответы [ 2 ]

1 голос
/ 18 ноября 2009

Чтобы сделать это предельно просто, просто установите 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 защищает вас от случайного включения примеров данных в ваш выпуск (и от затрат на загрузку ЦП).

Если ваши примеры данных большие, просто поместите их в XML или в базу данных и загрузите:

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

В любом случае примеры данных будут отображаться в конструкторе всякий раз, когда вы раскомментируете код. При выполнении вашего приложения оно будет заменено реальными данными.

1 голос
/ 18 ноября 2009

Стефан,

Я думаю, что вы можете сделать это, создав класс Design Time, как описано в ссылке ниже:

http://karlshifflett.wordpress.com/2008/10/11/viewing-design-time-data-in-visual-studio-2008-cider-designer-in-wpf-and-silverlight-projects/

Надеюсь, это поможет.

...