Как правильно организовать обратную связь в MVVM между ViewModel и View

Проблема в следующем:

VM не знает какое у неё View (это может быть и WPF, и Xamarin и прочие). Обработчик ошибок осуществляется по средствам интерфейса. Он един для всех представлений. Имеется так же действия которые совершаются в рамках одного представления, например, после успешной авторизации перейти на страницу или обновить DataGrid.

В настоящий момент проблема решается плохо. Создаётся в VM публичный статический класс Helper, а во View HelperSet который заполняет Helper всеми недостающими действиями.

Как это делается правильно?

Этот метод используется во всех командах:

public static void FireAndForgetSafe(this Action action, IErrorHandler? handler)
    {
        try
        {
            action.Invoke();
        }
        catch (ResultNotFoundException ex)
        {
            if (handler is IErrorNotFoundHandler handlerWithNotFound)
                handlerWithNotFound.HandleResultNotFound(ex);
            else handler?.ErrorHandle(ex);
        }
        catch (Exception ex)
        {
            handler?.ErrorHandle(ex);
        }
    }

DataGrid необходимо обновить, то есть вызвать Refresh()


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