Есть ли шаблон MVC для C # в WPF - PullRequest
2 голосов
/ 08 января 2009

Существует ли шаблон, в котором в WPF я могу создать простую форму пользовательского интерфейса из XML-файла определения, извлеченного из базы данных?

Это позволит пользователю вводить данные в эту форму и отправлять их обратно. Данные будут отправлены обратно в структуре XML, которая будет близко / точно имитировать определение пользовательского интерфейса.

Определение должно включать тип данных и, если это было обязательное значение или нет. Затем я хотел бы сопоставить эти типы данных и требуемые значения с правилами проверки данных, чтобы форма не могла быть отправлена, если она не прошла проверку.

Он также должен обрабатывать возможность иметь списки повторяющихся данных.

Я нахожусь на стадии планирования этого проекта и на данный момент обладаю довольно хорошей гибкостью в дизайне, хотя я почти уверен, что мне нужно придерживаться рабочего стола, а не сети, поскольку я могу заниматься некоторыми вещами из Office Inter-op а также.

Какой технологический стек вы бы порекомендовали? Я думаю, что XMAL и WPF могут быть близки к ответу.

Я также посмотрел на XUL , но он не кажется готовым или полезным для C #. (Нашел эту статью из MSDN в 2002 году)

Спасибо,
Кит

Ответы [ 4 ]

1 голос
/ 09 января 2009

Model View Presenter, похоже, вполне подходит WPF, если вы не слышали о нем раньше, посмотрите шаблон Supervisor Controller , который является подмножеством MVP (автор переименовал его в Supervisor Controller и Passive View как два разных варианта MVP). Это принцип разработки, который поможет вам продвигать разделение интересов и работает намного лучше, чем MVC, когда у вас нет структуры для его физического применения.

Вы всегда можете попытаться создать механизм просмотра для ASP.NET MVC, который работает с WPF, хотя это было бы неплохо.

0 голосов
/ 08 января 2009

А как же Калибурн ?

0 голосов
/ 08 января 2009

Возможно, вы захотите взглянуть на среду CSLA.NET. Вы можете прочитать об этом здесь вместе с информацией о хорошо написанной книге, которая доступна:

http://www.lhotka.net/Default.aspx

-Эрик

0 голосов
/ 08 января 2009

Что ж, если вы хотите что-то сделать самостоятельно, вы можете довольно легко загрузить и отобразить динамический XAML. Вместо того, чтобы пользователи создавали XAML напрямую, вы можете иметь подмножество его «сопоставленного» с выбранным вами форматом XML, который вы XSL используете в действительный XAML:

XmlReader tXml = XmlReader.Create(myXamlString);
UIElement MyElement = (UIElement)XamlReader.Load(tXml);
...