我正在向我的 fogram 添加一个新复选框,并且需要将其值保存到设置文件中。我正在尝试使用以下代码来做到这一点:
private void CloseDisconnectedCbx_CheckedChanged(object sender, EventArgs e)
{
XDocument doc = XDocument.Load(BotsFile);
var savedBots = doc.Descendants("SavedBots")
.Where(p => p.Element("BotName").Value.ToLower()
== SelectBotBox.SelectedItem.ToString().ToLower())
.Elements("CloseDisconnected").FirstOrDefault();
if (savedBots == null)
{
try
{
doc.Descendants("SavedBots")
.Where(p => p.Element("BotName").Value.ToLower()
== SelectBotBox.SelectedItem.ToString().ToLower())
.FirstOrDefault()
.Add(new XElement("CloseDisconnected",
Convert.ToInt32(CloseDisconnectedCbx.Checked)));
doc.Save(BotsFile);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
}
它确实添加了新元素,但是,它看起来像这样:
<CloseDisconnected/> VALUE
它永远不会结束元素的关闭。我的代码错了,还是我忘记了什么?
仅当在 XML 文件中找不到该元素时才应该触发此代码。如果是,则更改将由另一个按钮处理。