У меня возникла проблема с пониманием того, как создавать модели просмотра на основе следующих моделей.
(я упростил модели, чтобы быть более четкими)
public class Hit
{
public bool On { get; set;}
public Track Track { get; set; }
}
public class Track
{
public ObservableCollection<Hit> Hits { get; set; }
public LinearGradientBrush Color { get; set; }
public Pattern Pattern { get; set; }
}
public class Pattern
{
public string Name { get; set; }
public ObservableCollection<Tracks> Tracks { get; set; }
}
Теперь, моя проблема в том, как создать ViewModels..
Мне нужно сохранить исходные отношения через модели, beacaus У меня есть метод Serialize() на шаблоне, который сериализует его в XML файл.. (с соответствующими треками и хитами)
Чтобы иметь возможность привязывать шаблон к пользовательским элементам управления, и вложенные шаблоны, я должен также иметь шаблон PatternViewModel с ObservableCollection <TrackViewModel> в нем, то же самое для TrackViewModel и HitViewModel.. и я neet для создания пользовательских свойств представления на моделях представления, которые не являются частью бизнес-объекта (цвета и т.д.).
Мне кажется, что не очень хорошо дублировать все отношения моделей на моделях просмотра... и отслеживание всех этих отношений при кодировании моделей просмотра также гораздо более подвержено ошибкам.
у кого есть лучший подход/решение?