Рекомендации по созданию формы WPF для изменения пользовательских настроек - PullRequest
0 голосов
/ 09 января 2019

Я совершенно новичок в C # и получил задание на создание формы WPF для изменения настроек в существующей программе на C # с использованием Visual Studio и WPF.

У меня много целей:

  1. Получить список всех имен настроек.
  2. Получить все пользовательские свойства.
  3. Добавить строку для каждого параметра в форму и позволить пользователю восстановить исходные параметры, использовать текущие или изменить их на новое значение.
  4. Убедитесь, что пользовательский ввод имеет правильный тип.
  5. Привязка между TextBox и значениями в строке, не уверен, что это лучший способ отправить детали. Какой объект вы рекомендуете связать с xaml? Список, содержащий строки свойств? Или связать каждую строку отдельно?

Я думаю, что мне нужно получить доступ к файлу App.config для 3, пока безуспешно. Я хотел бы получить совет об архитектуре, так как я новичок в VS, C # и WPF.

1 Ответ

0 голосов
/ 09 января 2019

Я не думаю, что это назначение подходит для кого-то нового в wpf, не говоря уже о c #. Даже опытные разработчики wpf могут найти некоторые хитрости в этой задаче.

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

По этой причине пользовательские настройки обычно сохраняются в appdata. Поскольку ожидается, что пользователь захочет их изменить. Они идут в файле user.config. Расположение одного из моей системы:

C: \ Users \ Andrew \ AppData \ Local \ MapEditor \ MapEditor.exe_Url_aszfdqs5110y44xmg0kfuuqbatf5la5a \ 1.0.0.0 \ user.config

Я - пользователь Эндрю на машине, и это пользовательские настройки для MapEditor.exe.

Сам файл xml.

Там я вижу

И внутри есть куча вещей.

Я бы не пытался редактировать xml напрямую. И это ваш первый бит, который вы найдете не совсем просто. Потому что вам нужно перевести xml. «Все пользовательские свойства.» Вы, вероятно, знаете, что они есть. Потому что пользователь не может просто добавить их. Они должны быть определены в приложении.

Я бы выбрал части, которые вы хотите, чтобы они изменили, и скопировал данные в модель представления. Или наблюдаемая коллекция моделей представления, представленная родительской моделью представления. Вероятно, самый простой в качестве наблюдаемой коллекции. Затем вы можете иметь другой класс viewmodel для каждого типа свойства. Они вводят строку в число, после чего она не может быть перенесена обратно в модель представления, и вы можете перехватывать validation.errors, который будет пузыриться. Чтобы сохранить, переведите модели представления обратно в xml и сохраните их.

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