Файл приложения (пример из реальной жизни) - PullRequest
0 голосов
/ 07 мая 2010

Ищете рекомендации по созданию файла приложения. Например, у меня есть приложение, которое хранит пользовательский ввод в файл (Textbox, DataGrid, ListBox и т. Д.). Я ищу реализацию WPF-C #.

Я хотел бы иметь следующее:

  1. Если пользователь редактирует любую форму (текстовое поле и т. Д.), В заголовке окна отображается звездочка .
  2. Когда окно закрыто и звездочка все еще там, появляется акция "Хотите сохранить изменения". Если затем сохранить , звездочка исчезнет.

Что используют настоящие приложения для создания файла приложения? (Примечание: я не ищу сохранение базы данных или SQL)

Я просто ищу подсказки и рекомендации. Спасибо.

Ответы [ 4 ]

1 голос
/ 07 мая 2010

Один из способов, которым я подходил к этому в прошлом, это просто иметь объект «Настройки / Приложение».

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

Если они нажмут да, то сериализуйте ваш объект Настройки / Приложения.Если вы хотите, чтобы он был читаемым / редактируемым человеком, то используйте сериализатор Xml, если вам это не важно, используйте двоичный сериализатор.

0 голосов
/ 07 мая 2010

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

Это можно сделать несколькими способами.Вот некоторые из них -

  1. Application.Idle обработчик событий - проверьте наличие флага.Если указано значение true / true, добавьте * к заголовку заголовка формы.Возможно, вы захотите использовать некоторые шаблоны для этого во всех отслеживаемых текстовых полях.
  2. Разработайте класс для выполнения этой задачи исключительно и отслеживайте его.

Есть и другие способытоже.Я буду редактировать ответ так, как я его помню.

0 голосов
/ 07 мая 2010

Используйте шаблон IsDirty, в котором у вас есть логическое свойство для каждого поля, которое вы переключаете в true для событий TextChanged.Это может быть использовано, чтобы определить, когда показывать звездочку.После нажатия кнопки «Сохранить» вы очищаете свойства IsDirty для каждого поля.

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

0 голосов
/ 07 мая 2010

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

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

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