1.DataGrid动态添加一行数据
点击添加按钮时,DataGrid添加一行数据
代码如下
TempPackageConfig.xml文件
<?xml version="1.0" encoding="utf-8" ?>
<Mysoft.Config>
<PackageCollection>
<PackageVersion name="" maxId="">
</PackageVersion>
</PackageCollection>
</Mysoft.Config>
添加一行数据
private void AddButton_Click(object sender, RoutedEventArgs e)//添加更新包
{
XmlDocument xmlPackage = getTempConfigXml();
XmlElement element = xmlPackage.CreateElement("Details");
XmlNode node = xmlPackage.SelectSingleNode(@"/Mysoft.Config/PackageCollection/PackageVersion");
node.AppendChild(element);
element = xmlPackage.CreateElement("PackageName");
XmlNode DetailsNode= xmlPackage.SelectSingleNode(@"/Mysoft.Config/PackageCollection/PackageVersion").LastChild;
node = DetailsNode.AppendChild(element);
node.InnerText = PackageNameBox.Text;
element = xmlPackage.CreateElement("PackagePath");
node = DetailsNode.AppendChild(element);
node.InnerText = PackagePathBox.Text;
element = xmlPackage.CreateElement("Do");
node = DetailsNode.AppendChild(element);
node.InnerText = "删除";
xmlPackage.Save(AppDomain.CurrentDomain.BaseDirectory + "TempPackageConfig.xml");
XmlNodeList Nodelist = xmlPackage.SelectNodes(@"/Mysoft.Config/PackageCollection/PackageVersion/Details");
PackageDetailsGrid.ItemsSource = Nodelist;
}
总共定义了3个单元格:更新包名称PackageName、更新包路径PackagePath、操作Do
2.获取DataGrid选中行的内容
点击第一行最后一个单元格删除超链接时,想要获取到当前选中行的更新包单元格的内容(3123)
PackageDetailsGrid为DataGrid的名称
获取当前选中的行:PackageDetailsGrid.SelectedItem
获取当前选中行的索引:PackageDetailsGrid.SelectedIndex
获取到PackageDetailsGrid.SelectedItem为object类型,不知道怎么操作,所以将object(System.xml.XmlElement)转换为System.Xml.XmlLinkedNode
获取第一行第一列单元格PackageName的内容
((System.Xml.XmlLinkedNode)(PackageDetailsGrid.SelectedItem)).SelectSingleNode("PackageName").InnerText;