Данные времени проектирования
Использование данных времени разработки для моих приложений для 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>