Я не думаю, что это назначение подходит для кого-то нового в 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 и сохраните их.