(Шаблон MVP), Как передать сообщения об ошибках от Предъявителя для Просмотра?

Если вы воспользуетесь StaticResource, он сохранит кисть от первой оценки. Однако вам вообще не нужно предоставлять ресурс для ShellPage, и того, что у вас есть в App.xaml, должно быть достаточно - у вас есть кисть с именем NavigationViewExpandedPaneBackground, и эта кисть должна автоматически переопределить значение по умолчанию NavigationPane ( связанный вопрос конкретно говорил о том случае, когда имя ресурса отличается от встроенного). Более того, он должен работать в соответствии с текущей темой, поскольку он является частью тематических словарей.

Попробуйте удалить элемент из ShellPage, чтобы посмотреть, решит ли он проблему.

Я проверил это изменение, и оно работает правильно.

Светлая тема

Light theme

Темная тема

[ 118] Dark theme

6
задан Jason Plank 17 November 2011 в 20:04
поделиться

3 ответа

Это то, что я делаю.

Другой способ, о котором я читал, - это чтобы модель знала, как показать ошибку (возможно, ErrorMessagePresenter), чтобы ошибка была отделена от оригинальный презентатор.

Я действительно не нашел применения для этого, для меня это всегда заканчивается презентатором и представлением, реализующим оба интерфейса.

0
ответ дан 17 December 2019 в 02:33
поделиться

В случае сообщений об ошибках я бы назвал некоторые базовые функции. Таким образом, вы можете выбрать, обновить ли окно статуса слева внизу и / или отобразить модальное окно сообщения.

В докладчике:

_windowManager.NoItemFound(errorMessage)

В диспетчере окон:

_statusBox.Text = errorMessage; MessageBox.Show(errorMessage);
1
ответ дан 17 December 2019 в 02:33
поделиться

Согласитесь с ответом Джерико - задачами Maven Ant. Смотрите следующее: Почему вы должны использовать Maven Ant Tasks вместо Maven или Ivy

Есть подробные примеры, которые должны заставить вас пойти.

-121--3535741-

Решение состоит в том, что скользящий див должен иметь ширину, заданную в пикселях. Не используйте «» auto «» и «»% «». И у вас будет отличный результат! Проблема заключается в встроенных элементах, которые находятся в скользящем углублении

, но если они имеют ширину в px, высота будет идентичной. Попробуйте.

-121--935041-

Мы проводим событие. В презентаторе вы регистрируете это событие:

public event PresenterEventHandler Message;

И затем поднимаете его так:

PresenterEventArgs pe = new PresenterEventArgs("Error message", Status.Error);
this.Message(this, pe);

Затем в представлении:

protected override void OnInit(EventArgs e)
{
    this.presenter = new MyPresenter(this, MyBusinessService.Instance);
    this.presenter.Message += new PresenterEventHandler(presenter_Message);
}

void presenter_Message(object sender, PresenterEventArgs pe)
{
    // display error message
}

Вы можете передавать различные типы статусов обратно в представление таким образом, а не только сообщения об ошибках. У нас есть Успех, Ошибка, Заблокировано, Предупреждение, Справка.

3
ответ дан 17 December 2019 в 02:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: