Пытаюсь сохранить данные из TextBox, ComboBox и DateTimePicker'ов в xml файл.
Наткнулся на статью, всё вроде как сохраняется и потом восстанавливается соответственно, однако при добавлении следующих строк
else if (childCtrl is DateTimePicker)
{
xmlSerialisedForm.WriteElementString("Value", ((DateTimePicker)childCtrl).Value.ToString("dd/MM/yyyy"));
}
в AddChildControls никакого счастья в жизни не происходит. В выходном xml-файле есть записи со значениями введёнными в текстовые поля, выбранными вариантами из боксов. Однако с dateTimePicker есть только строка про его видимость.
P.S. Происходит всё так - пользователь заполняет поля формы, нажимает "Просмотр", в этот момент происходит сериализация и основное окно закрывается, открывается окно просмотра, пользователь это окно закрывает и возвращается к предыдущему окну, куда происходит десериализация.
Кусочек xml-файла:
<Control Type="System.Windows.Forms.Panel" Name="OverallPanel">
<Visible>True</Visible>
<Control Type="System.Windows.Forms.TableLayoutPanel" Name="OverallLayout">
<Visible>True</Visible>
<Control Type="System.Windows.Forms.TextBox" Name="EngSurnameInput">
<Text>PETROV</Text>
<Visible>True</Visible>
</Control>
<Control Type="System.Windows.Forms.TextBox" Name="EngNameInput">
<Text>Ivan</Text>
<Visible>True</Visible>
</Control>
<Control Type="System.Windows.Forms.DateTimePicker" Name="DateOfBirthPicker">
<Visible>True</Visible>
</Control>
</Control>
</Control>
P.P.S. Возможно я неправильно ставлю вопрос. В таком случае - буду благодарен за направление в нужные координаты.
Буду рад поискать иначе - но не могу правильно сформулировать вопрос для поиска (XML, JSON, или что-то ещё) 4. Версия .Net Framework - 4.7.2.
– Temir Oct 20 '21 at 12:29Newtonsoft.Json, а для .NET Core 3.x и новее - есть встроенный сериализаторSystem.Text.Json. Делов вам на пару часов, главное - разобраться с методикой привязки данных. Не храните данные в контролах, а только отображайте и возникшая у вас проблема больше никогда не возникнет. – aepot Oct 20 '21 at 13:02