Предлагать шаблонную функциональность в приложении WPF - как? - PullRequest
2 голосов
/ 25 октября 2011

У меня есть мечта:

Я работаю над приложением для заметок, где каждый может хранить заметки и отмечать их.Теперь было бы неплохо, если бы пользователи могли использовать приложение для нескольких целей: хранить информацию о книге, рецепты, контрольные списки и т. Д. *

шаблон информации о книге http://dl.danielgilbert.de/templatetable.png

Здесь мыиметь шаблон информации о книге.Я мог бы представить селектор шаблонов под полем заголовка, где вы могли бы выбрать шаблон для упорядоченного ввода информации.Но я застрял.

  • Как бы вы на самом деле "загрузили" или "создали" такой шаблон?
  • Как бы вы сохранили введенные данные?
  • Как бы вы включили основные параметры форматирования в текстовых полях?
  • И, наконец: мне понадобится нередактируемый шаблон для обзора, заполненный данными, введенными в режиме редактирования.

Я знаю, это не простой вопрос, но, возможно, есть несколько довольно хороших идей.:)

Ответы [ 2 ]

1 голос
/ 25 октября 2011

Вы можете использовать отражения и пользовательские атрибуты.

Я реализую аналогичные функции в своем приложении wp7 (но это не имеет значения, xaml везде xaml).

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

Это часть моего проекта :

Надеюсь, эта информация поможет вам.

0 голосов
/ 26 октября 2011

Ладно,

очевидно, довольно просто добиться того, чего я хочу: если вы введете что-либо в элемент управления, оно будет сериализовано, если вы используете XamlWriter.Я мог бы сохранить сериализованный Xaml и прочитать его обратно, когда заметка будет загружена.Итак, наконец, у пользователя получится файл, в который он вводит какую-то разметку, например:

<CheckBox >test</CheckBox>
<Label>Huhu</Label>
<TextBox Foreground="Gray">This is a test...</TextBox>
<Label>Huhu</Label>
<TextBox Foreground="Gray">This is a test...</TextBox>

И на экране редактирования вся разметка будет сериализована со своими значениями.

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

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