Данные времени проектирования

Использование данных времени разработки для моих приложений для Windows Phone, которые отлично работают для строк, int и т. Д. (Например, здесь: имя пользователя, возраст человека), но когда мне нравится делать это для "вложенного объекта" (например, здесь: компания / работодатель), я понятия не имею, как это сделать в файле design-time-data-XAML.

Компания:

public class Company
{
  public string Name { get; set; }
  public int Size { get; set; }
}

Человек:

public class Person
{
  public int Age { get; set; }
  public string Name { get; set; }
  public Company Employer { get; set; }
}

PersonViewModel.cs:

"Обычный" ViewModel, который реализует INotifyPropertyChanged и имеет свойства для всех данных, которые я хочу отобразить.

PersonViewModelSampleData.xaml:

<local:PersonViewModel 
    xmlns="http:schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http:schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:Hfr.BlaBla.ViewModels"

    Name="Harald-René Flasch"
    Age="36">
</local:PersonViewModel>

Персональная страница XAML:

<TextBlock
    Text="{Binding Path=Employer.Name}"
    Style="{StaticResource PhoneTextLargeStyle}"
    TextWrapping="Wrap" ... />

Итак, Path = Employer.Name прекрасно работает во время выполнения, но я понятия не имею, как предоставить эти данные для поддержки времени разработки. Какие-либо предложения?

1 ответ

Решение

Я не понимаю ваши данные образца: это был бы случай Person ИЛИ экземпляр PersonViewModel (но в этом случае viewModel должен иметь свойство типа Company или же Person или оба).

Если ваши данные образца являются экземпляром Person:

<local:Person
    xmlns="http:schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http:schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:Hfr.BlaBla.MyModelsNamespace"

    Name="Harald-René Flasch"
    Age="36">
     <local:Person.Employer>
             <local:Company Name="MyCompany"/>
     </local:Person.Employer>
</local:Person>

Будьте осторожны с пространствами имен: здесь "локальный" xmlns относится к пространству имен модели (не viewModel).

РЕДАКТИРОВАТЬ: Если ваши данные образца является viewModel, предполагая, что ваша ViewModel как свойство Employer с сеттером (не только геттером), типа Company:

<local:PersonViewModel 
    xmlns="http:schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http:schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:Hfr.BlaBla.ViewModels"
    xmlns:myModel="clr-namespace:Hfr.BlaBla.MyModelsNamespace"
    Name="Harald-René Flasch"
    Age="36">
    <local:PersonViewModel.Employer>
            <myModel:Company Name="MyCompany"/>
    </local:PersonViewModel.Employer>
</local:PersonViewModel>
Другие вопросы по тегам