Лучший способ сохранить список бизнес-объектов в WPF - PullRequest
0 голосов
/ 13 декабря 2010

Так что этот вопрос не столько технический, сколько скорее концептуальный.

У меня есть некоторый опыт работы с asp.net, но я только начал работать с WPF со службами WCF (никакого опыта в winforms).Скажем, мне нужно вести этот список бизнес-объектов.Я думаю о 2 решениях:

  1. Я привязываю сетку к своему списку объектов и позволяю пользователю редактировать объекты, фиксирующие объект, когда пользователь меняет фокусированную линию в сетке, если естьнет ошибок проверки.Если есть ошибки проверки, пользователь не может изменить выделенную линию.

  2. Разрешить пользователям свободно редактировать список объектов и фиксировать всю коллекцию, выполняя пакетное обновление этих объектов с помощью кнопки сохранения.Фиксация возможна только в том случае, если в сетке отсутствуют ошибки валидации.О проблемах валидации сообщается в сетке, и пользователи могут свободно менять фокусированный ряд.

Каков стандартный (лучший) способ сделать это?Любые другие предложения приветствуются.

Заранее спасибо

PS: Просто обратите внимание, что источник данных не является локальным для приложения, службы WCF размещаются на веб-сервере.

Ответы [ 3 ]

1 голос
/ 13 декабря 2010

Я бы не сказал, что здесь есть определенный «стандарт». Используемый вами метод будет в значительной степени зависеть от ряда факторов.

  1. Что такое база пользователей? Существует ли высокая вероятность одновременного редактирования, когда сохранение записи по записи поможет уменьшить вероятность коллизий?
  2. Что является наиболее эффективным с точки зрения пользователей, нужно ли им «массовое редактирование» или важно, чтобы они правильно выполнили каждое из них, прежде чем продолжить
  3. Как насчет потерянных изменений, если вы выполняете массовое редактирование, что вы делаете, если на компьютере пользователя происходит сбой или что-то приводит к смерти приложения.
1 голос
/ 13 декабря 2010

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

Существует третий подход, который вы не упомянули, а именно обновление информации о проверке и предоставление пользователю возможности оставлять строки в недопустимом состоянии. Пока пользовательский интерфейс достаточно четко определяет, является ли строка действительной, у пользователя не должно быть путаницы относительно того, были ли его изменения зафиксированы в источнике данных.

1 голос
/ 13 декабря 2010

Это действительно зависит от многих вещей, но так как вы упомянули службы WCF, я собираюсь предположить, что у вас есть один источник данных, который предоставляется множеству клиентов интерфейсом службы (верно?) В этом случае вы, вероятно, хотите минимизировать сетевой трафик, поэтому я бы предложил использовать подход пакетного обновления. В противном случае вы будете получать сервисные звонки для каждого изменения, которое делает любой пользователь.

Если у пользователей есть локальный источник данных, вы можете рассмотреть первый подход, поскольку это сводит к минимуму вероятность потери данных, поскольку каждое изменение фиксируется в источнике данных.

Кроме того, вы можете захотеть взглянуть на встроенные возможности проверки сетки данных WPF: http://msdn.microsoft.com/en-us/library/ee622975.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...