Настольное приложение C # (привязка данных) - PullRequest
0 голосов
/ 12 февраля 2011

Я хотел бы создать простое настольное приложение на c #, которое будет сохранять / извлекать введенные пользователем записи в текстовый файл.Скажем, у каждой записи есть три поля: имя группы, название записи и сообщение записи.Таким образом, в основном текстовый файл имеет несколько записей, и каждая запись связана с группой, как показано ниже.

Group A

Header title 1A  message 1A
Header title 2A  message 2A
Header title 3A  message 3A
.......          ....... 
.......          .......
.......          .......
Group B

Header title 1B  message 1B
Header title 2B  message 2B
Header title 3B  message 3B
.......          ....... 
.......          .......
.......          .......
Group C

Header title 1C  message 1C
Header title 2C  message 2C
Header title 3C  message 3C
.......          ....... 
.......          .......
.......          .......

Group D

.......          .......
.......          .......

В окне desktopm будет 3 столбца, в 1-м столбце должны быть перечислены все группы, во 2-м столбце перечислены все записиВыбранная группа (из столбца 1) и 3-й столбец подробно отображают одну запись, которая выбрана во 2-м столбце.Пожалуйста, дайте ваши предложения о том, как это реализовать?Любые образцы и учебник высоко оценены.

Ответы [ 2 ]

1 голос
/ 12 февраля 2011

Вам лучше использовать XML.

C # имеет очень приятную XML-сериализацию , которая позволила бы вам конвертировать XML в объекты c # и наоборот (без необходимости разбора вручную)

Кроме того, этот вопрос является слишком общим. Вам лучше попытаться изменить приложение самостоятельно, а затем вернуться с конкретными проблемами.

0 голосов
/ 12 февраля 2011

Вам понадобятся три основных компонента:

  1. Модель для ваших данных.Это, вероятно, будет включать класс Group и класс Record, где Group включает в себя что-то вроде GetRecords() метода или Records свойства (возвращающего IList<Record> для привязки данных).
  2. Анализатор, который будет читать строки файла и создавать коллекцию этих Group объектов - возможно, в форме Dictionary<string, Group> или вашей собственной GroupCollection реализации.
  3. GUI (duh), с двумя ListBox и некоторым пользовательским элементом управления отображением для отдельного Record.

. Для первого ListBox вы, вероятно, установите свойство DataSource для вашей коллекции объектов Groupпотребуется реализовать IList, если я не ошибаюсь).

Обработайте событие SelectedIndexChanged вашего первого ListBox и установите DataSource во втором ListBox на результат GetRecords() / Records из выбранного Group.

Обработка события SelectedIndexChanged вашей секунды ListBox и отображение сведений о выбранной записи в вашем пользовательском элементе управления.

Так или иначе, я бы к этому подошел.

...