Предварительный просмотр макета xaml с конкретными примерами данных - PullRequest
4 голосов
/ 14 ноября 2011

Я занимаюсь разработкой приложения WP7 и создаю список с несколькими элементами.Мне было интересно, есть ли способ предварительного просмотра, как будет выглядеть макет.Пока что элементов не существует, я не могу их «просмотреть».Есть ли какой-нибудь способ подачи фиктивных данных или других методов, которые могли бы помочь в предварительном просмотре макетов xaml?

Ответы [ 2 ]

6 голосов
/ 14 ноября 2011

Первый - это помогает, если вы используете MVVM или, по крайней мере, привязку ItemsSource + ItemTemplate для отображения ваших элементов.Когда вы окажетесь там - в Expression Blend есть несколько отличных инструментов для выборки данных.

Перейдите на вкладку «Данные», нажмите «Создать образец данных / Новые образцы данных».Он создаст пример данных в виде XAML и свяжет с ним вашу страницу следующим образом:

d:DataContext="{d:DesignData SampleData/MainViewModelSampleData.xaml}"

Затем вы можете добавить новые свойства, моделировать коллекции с различными типами данных и автоматически сгенерировать некоторые данные, которые вы можете использовать вваш XAML.

5 голосов
/ 14 ноября 2011

Вы должны предоставить данные конструктора.

Существует несколько способов сделать это.

Один из самых простых - предоставить DataContext в объявлении XAML для дизайнера, который будет использоваться при отображении страницы.

В объявлении страницы Xaml:

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
d:DataContext="{d:DesignInstance local:DesignerSampleData, IsDesignTimeCreatable=True}"

В примере класса данных должны быть данные, с которыми связаны ваши визуальные элементы:

public class DesignerSampleData: INotifyPropertyChanged
    {
        public DesignerSampleData()
        {
            _sampleData = "My test string that will display in VS designer for preview";
        }

        private String _sampleData;
        public String SampleData
        {
            get { return _sampleData; }
            set
            {
                if (value != _sampleData)
                {
                    _sampleData = value;
                    NotifyPropertyChanged("SampleData");
                }
            }
        }

В привязке xaml к SampleData:

<TextBlock Text="{Binding SampleData}" />
...