Как Вы перешли между представлениями в MVP, использующем C# WinForms?

Не используйте строковые функции в XML, вместо этого используйте DOMDocument , это поможет вам легче разобрать XML, вот пример кода DEMO :

Replace this value";
$domDocument = new DOMDocument();
$domDocument->loadXML($string);
$address2Elements = $domDocument->getElementsByTagName('address2');
foreach ($address2Elements as $address2) {
        $address2->nodeValue = "Value Replaced";

}

var_dump($domDocument->saveXML());

Выход:

string(58) "
Value Replaced
"

7
задан Jon B 2 April 2009 в 01:23
поделиться

4 ответа

Это - Метод на представлении. Таким образом, у Вас был бы абстрактный метод, как ShowCustomerForm (), например, и реализацией для WinForms будет CustomerForm. Покажите (или независимо от того, что это находится в WinForms), и в WebForms это был бы Ответ. Redirict(CustomerForm.aspx).

1
ответ дан 7 December 2019 в 10:07
поделиться

Используя некоторый интерфейс навигатора, например:

interface INavigator
{
    void MoveTo (string screenName);
    void MoveTo (string screenName, NavigationParameters parameters);
}

У каждого предъявителя затем был бы экземпляр этого навигатора переданным в конструкторе. Таким образом, навигация отделяется и от предъявителя и от отдельных представлений.

У Вас может быть отображение между псевдонимами и фактическими классами Формы, определенными в конфигурации.

4
ответ дан 7 December 2019 в 10:07
поделиться

Я предполагаю, что Вы имеете в виду другой экран, который имеет его собственное парное MVP?

Я думал о том случае этим утром, мое решение будет, вероятно, состоять в том, что существует Координатор, знает Предъявителя и парное MVP, которое должно быть открыто. Тот открывает новый presenter+view и, по окончании, дополнительно называет метод на первом предъявителе с результатами.

Таким образом первый MVP ничего не должен знать о новом экране, они только запускают событие. Логика для открытия второго окна и передачи назад полностью содержится в Координаторе.

1
ответ дан 7 December 2019 в 10:07
поделиться

Мы делаем это использование, что Lennaert вызывает координатором (мы называем это workflowcontroller). Я происхожу из веб-разработки Java, и идея была формой ApplicactionController. Я столкнулся с некоторыми проблемами с этим, workflowcontroller выполняет команду. Каждая команда представляет рабочий процесс или серию связанных шагов (таким образом имя workflowcontroller). flowcontroller обрабатывает naviagation между командами, и flowcontroller имеет навигатора, который перешел между шагами. Каждый шаг имеет событие конца (который предъявитель соединен проводом к), и Метод NextStep, который мы используем для навигации к следующему шагу. Наш worflowcontroller сильно связывается к меню, таким образом, мы можем перейти между различными рабочими процессами, шаги устанавливают ссылку между представлением и предъявителями. Мы не имеем никакой конфигурации и соединили проводами логику, которая устанавливает следующий шаг для выполнения в метод под названием NextStep. Это работает, но я не очень удовлетворен этим. Слишком много детали для вхождения здесь. Я думал о shifing к чему-то, что более управляемо событиями. Мы используем шину сообщения, чтобы сделать всю нашу другую коммуникацию, и я хотел бы сместиться к использованию этого для навигации между экранами. Я не знаю, было ли это полезно или нет. наши экраны по большей части состоят из последовательных рабочих процессов.

0
ответ дан 7 December 2019 в 10:07
поделиться
Другие вопросы по тегам:

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