0

Есть следующая вью модель, в SaveSettingsChangesCommand выкидываю исключение если ввод некорректный, но как мне об этом оповестить пользователя? Говорят добавлять MessageBox во ViewModel'и - плохо, но как по другому? Делать отдельное окно и вьюмодель под него и регистрировать (как говорилось в первой части вот этого ответа)?

public class InboundCheckerSettingsViewModel : BaseViewModel
{
    private readonly InboundCheckerSettings _settings;
private int _delay;
private DateTime _start;

public int Delay { get => _delay; set => SetProperty(ref _delay, value); }
public DateTime Start { get => _start; set => SetProperty(ref _start, value); }


public InboundCheckerSettingsViewModel() { _settings = StaticApplication.Service.Resolve<Settings>().InboundCheckerSettings; Delay = _settings.Delay; Start = _settings.Start; }

public ICommand SaveSettingsChangesCommand { get => new Command((_) => { if(Delay <= 0) throw new ArgumentException();

        _settings.Delay = Delay;
        _settings.Start = Start;
    });

} }

Aarnihauta
  • 2,326
  • 3
  • 12
  • 23
  • 1
    ну да, делать сервис диалоговых окон, как, например, вот тут - https://youtu.be/OLaOmRwP2II – Pekor Apr 05 '22 at 08:38
  • 1
    В WPF, при правильной привязке и с хорошем стилем (стандартный например), любое неверное значение (например строка в int) приведет к выделению элемента красной рамкой, а сама привязка не обновится. Также вы можете на основе этого сделать свои правила, все это делается через ValidationRules. Так что, есть ли смысл на каждый чих выводить пользователю диалоговое окно? Меня бы такое раздражало. – EvgeniyZ Apr 05 '22 at 11:50
  • @EvgeniyZ вы правы, спасибо. Это действительно лучше, чем диалоговые окна – Aarnihauta Apr 05 '22 at 11:56

0 Answers0