WPF FileFolderDialog 和弹出子窗口的一些问题

时间:2022-05-26 02:06:52

摘要:本文主要是WPF中 FileFolderDialog的相关问题,补充了关于在父窗口弹出子窗口,以及子窗口的相关属性(Data Binding)和命令绑定(Delegate Command)问题,里面还有关于如何使用读写xml文件内容的方法。

需要注意的地方:

(1)对于每一个窗口(父窗口和子窗口),如果涉及到Data Binding相关问题的时候,均需要设置其对应的DataContext(一般为其ViewModel);

(2)对于未在构造函数中初始化的属性,需要在定义的时候进行实例化(如下:),否则将无法使用该属性对象;

private Condition _queryConditions=new Condition(); //这里的创建实例对象很重要 public Condition QueryConditions { get { return _queryConditions; } set { queryConditions = value; this.RaisePropertyChanged("QueryConditions"); } }

(3)相对路径的使用如下:

private void AddPacsNode() { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(@"..\..\Data\PacsConfig.xml");        //相对路径 //xmlDoc.Load(@"C:\Users\Administrator\Documents\Visual Studio 2015\Projects\Day5\TestOpenFileDialog\TestOpenFileDialog\Data\PacsConfig.xml"); // 绝对路径 XmlNode root = xmlDoc.SelectSingleNode("PACS");   //查找<PACS> XmlElement xe1 = xmlDoc.CreateElement("PacsNode"); //创建一个<PacsNode>节点 XmlElement xesub1 = xmlDoc.CreateElement("AETitle"); xesub1.InnerText = TempDataView.AETitle; //设置文本节点 xe1.AppendChild(xesub1); //添加到<book>节点中 XmlElement xesub2 = xmlDoc.CreateElement("HostIP"); xesub2.InnerText = TempDataView.HostIP; xe1.AppendChild(xesub2); XmlElement xesub3 = xmlDoc.CreateElement("Port"); xesub3.InnerText = TempDataView.Port; xe1.AppendChild(xesub3); XmlElement xesub4 = xmlDoc.CreateElement("HostName"); xesub4.InnerText = TempDataView.HostName; xe1.AppendChild(xesub4); root.AppendChild(xe1);                           //添加到<bookstore>节点中 xmlDoc.Save(@"..\..\Data\PacsConfig.xml");               //相对路径 this.LoadData(); }