Правильное представление Model в ViewModel

Сразу к примеру. Допустим у нас есть класс с какими-то данными.

public class OrganizationDetails
{
    public string Name { get; set; }

    public string Address { get; set; }
}

Данные для этого класса мы получаем из файла через другой класс-парсер.

public class DocXService
{
    public async Task<OrganizationDetails> ReadAsync(string filePath)
    {
        //Парсим и отдаем результат
        return new OrganizationDetails();
    }
}

После парсинга файла я создаю диалоговое окно, где вывожу полученные данные в двух TextBox и пользователь может их изменять. Мне нужно добавить валидацию этого класса и тут начинается мой вопрос.

Вопрос: могу ли я сразу унаследовать OrganizationDetails от ReactiveValidationObject(базовый класс для валидации из ReactiveUI) или же мне нужно создать отдельную VM OrganizationDetailsViewModel, где я пропишу все правила валидации.

Вариант 1(делал всегда так):

public class OrganizationDetails : ReactiveValidationObject
{
    [Reactive]
    public string Name { get; set; }

    [Reactive]
    public string Address { get; set; }

    public OrganizationDetails()
    {
        this.ValidationRule(
            x => x.Name,
            x => !string.IsNullOrWhiteSpace(x),
            "Требуется");

        this.ValidationRule(
            x => x.Address,
            x => !string.IsNullOrWhiteSpace(x),
            "Требуется");
    }
}

2 вариант:

public class OrganizationDetailsViewModel : ReactiveValidationObject
{
    [Reactive]
    public string Name { get; set; }

    [Reactive] 
    public string Address { get; set; }

    public OrganizationDetailsViewModel(OrganizationDetails details)
    {
        Name = details.Name;
        Address = details.Address;

        this.ValidationRule(
            x => x.Name,
            x => !string.IsNullOrWhiteSpace(x),
            "Требуется");

        this.ValidationRule(
            x => x.Address,
            x => !string.IsNullOrWhiteSpace(x),
            "Требуется");
    }
}

Ответы (0 шт):