Мне интересно, как подойти к наследованию с помощью View Models в шаблоне MVVM. В моем приложении у меня есть модель данных, которая напоминает следующее:
class CustomObject
{
public string Title { get; set; }
}
class CustomItem : CustomObject
{
public string Description { get; set; }
}
class CustomProduct : CustomItem
{
public double Price { get; set; }
}
В моем приложении у меня есть класс ViewModelBase, а затем у меня будут следующие модели для просмотра:
- CustomObjectViewModel
- CustomItemViewModel
- CustomProductViewModel
Грубая реализация CustomObjectViewModel будет выглядеть следующим образом:
class CustomObjectViewModel : ViewModelBase
{
private readonly CustomObject _customObject;
public CustomObjectViewModel( CustomObject customObject )
{
_customObject = customObject;
}
public string Title
{
// implementation excluded for brevity
}
}
Мне кажется логичным, что мои модели просмотра будут расширяться так же, как моя модель (CustomItemViewModel расширяет CustomObjectViewModel и т.д.). Однако я заметил, что по мере того как я спускаюсь по дереву наследования, я буду добавлять дополнительные ссылки на один и тот же объект. Мне это кажется слишком чрезмерным, и мне было интересно, как подойти к этой проблеме, и если бы можно было сделать ее намного чище.