2010-05-07 6 views
0

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

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

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

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

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

ответ

0

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

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

1

Один из способов, к которым я применил это в прошлом, - это просто иметь объект Settings/Application.

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

Если бы оно было, запросите пользователя.

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

0

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

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

0

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

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

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

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

Смежные вопросы