XML
<Tree>
<Item>
<编号>编号</编号>
<树冠>树冠半径</树冠>
<树干>树干直径</树干>
<树龄>树龄</树龄>
<古树等级>古树等级</古树等级>
</Item>
<Item>
<编号>T1</编号>
<树冠>3.3m</树冠>
<树干>22cm</树干>
<树龄 />
<古树等级 />
</Item>
<Item>
<编号>T2</编号>
<树冠>2.5m</树冠>
<树干>20cm</树干>
<树龄 />
<古树等级 />
</Item>
</Tree>
保存按钮,点击事件
<Button Name="btSaveTree" BorderThickness="0" Width="32" Height="32" ToolTip="保存" Style="{StaticResource ButtonMouseOver}" Click="BtSaveTree_Click">
<Button.Background>
<ImageBrush ImageSource="img/PopUp/保存.png" />
</Button.Background>
</Button>
private void BtSaveTree_Click(object sender, RoutedEventArgs e)
{
try
{
saveData.SaveTree(this);
}
catch (Exception)
{
return;
}
}
class SaveData
{
BindingList<DataTree> dList = new BindingList<DataTree>();
XmlWriter write;
//保存数据,在界面修改数据,点击保存按钮保存数据,XML更新保存
public void SaveTree(MainWindow mainWindow)
{
string tvData = mainWindow.tvData.ToString();
DataTable dt = new DataTable();
dt = ((DataView)mainWindow.dgTree.ItemsSource).Table;
dList.Clear();
for (int i = 0; i < dt.Rows.Count; i++)
{
dList.Add(new DataTree(dt.Rows[i][0].ToString(), dt.Rows[i][1].ToString(), dt.Rows[i][2].ToString(), dt.Rows[i][3].ToString(), dt.Rows[i][4].ToString()));
}
string filePath = System.Windows.Forms.Application.StartupPath + "/Resource/XML/" + tvData + "/" + tvData + ".xml";
string path = filePath;
//读取到DataGrid内的值后,存储到XML中
XmlWriterSettings setting = new XmlWriterSettings();
//指定的输入或输出检查的量 XmlReader 和 XmlWriter 对象执行
setting.ConformanceLevel = ConformanceLevel.Auto;
setting.Indent = true;//是否缩进
setting.Encoding = new UTF8Encoding(false);
write = XmlWriter.Create(path, setting);
write.WriteStartElement("Tree");
foreach (var s in dList)
{
//Console.WriteLine("值" + s.ItemName + " " + s.Infor+ " " + s.QTY);
saveContent(s);
}
write.Close();
MessageBoxTimeoutA((IntPtr)0, "保存成功", "", 0, 0, 500); // 直接调用 500毫秒后自动关闭
}
[DllImport("user32.dll")]
public static extern int MessageBoxTimeoutA(IntPtr hWnd, string msg, string Caps, int type, int Id, int time); //引用DLL
public void saveContent(DataTree s)
{
write.WriteStartElement("Item");
write.WriteElementString("编号", s.Number);
write.WriteElementString("树冠", s.Crown);
write.WriteElementString("树干", s.Trunk);
write.WriteElementString("树龄", s.Age);
write.WriteElementString("古树等级", s.Grade);
write.WriteEndElement();
write.Flush();
}
}
class DataTree
{
private string number;
public string Number
{
get { return number; }
set { number = value; }
}
private string crown;
public string Crown
{
get { return crown; }
set { crown = value; }
}
private string trunk;
public string Trunk
{
get { return trunk; }
set { trunk = value; }
}
private string age;
public string Age
{
get { return age; }
set { age = value; }
}
private string grade;
public string Grade
{
get { return grade; }
set { grade = value; }
}
public DataTree() { }
public DataTree(string number,string crown, string trunk, string age,string grade)
{
Number = number;
Crown = crown;
Trunk = trunk;
Age = age;
Grade = grade;
}
}