// 把事项重新全部加入listview public void AddToListView(ListView list) { for (int i = 0; i < this.Count; i++) { OrderItem item = this[i]; item.AddToListView(list); } }
// parameters: // changed_refids 累加修改过的 refid 对照表。 原来的 --> 新的 /// <summary> /// 根据一个 XML 字符串内容,构建出集合内的若干事项 /// </summary> /// <param name="nodeOrderCollection">XmlNode对象,本方法将使用其下属的 dprms:order 元素来构造事项</param> /// <param name="list">ListView 对象。构造好的事项会显示到其中</param> /// <param name="bRefreshRefID">构造事项的过程中,是否要刷新每个事项的 RefID 成员值</param> /// <param name="changed_refids">累加修改过的 refid 对照表。 原来的 --> 新的</param> /// <param name="strError">返回出错信息</param> /// <returns>-1: 出错。错误信息在 strError 中; 0: 成功</returns> public int ImportFromXml(XmlNode nodeOrderCollection, ListView list, bool bRefreshRefID, ref Hashtable changed_refids, out string strError) { strError = ""; int nRet = 0; if (nodeOrderCollection == null) { return(0); } XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable()); nsmgr.AddNamespace("dprms", DpNs.dprms); XmlNodeList nodes = nodeOrderCollection.SelectNodes("dprms:order", nsmgr); for (int i = 0; i < nodes.Count; i++) { XmlNode node = nodes[i]; OrderItem order_item = new OrderItem(); nRet = order_item.SetData("", node.OuterXml, null, out strError); if (nRet == -1) { return(-1); } if (bRefreshRefID == true) { string strOldRefID = order_item.RefID; order_item.RefID = Guid.NewGuid().ToString(); changed_refids[strOldRefID] = order_item.RefID; } // TODO: distribute 里面的册参考 ID 需要替换 this.Add(order_item); order_item.ItemDisplayState = ItemDisplayState.New; order_item.AddToListView(list); order_item.Changed = true; } return(0); }
// parameters: // changed_refids 累加修改过的 refid 对照表。 原来的 --> 新的 /// <summary> /// 根据一个 XML 字符串内容,构建出集合内的若干事项 /// </summary> /// <param name="nodeOrderCollection">XmlNode对象,本方法将使用其下属的 dprms:order 元素来构造事项</param> /// <param name="list">ListView 对象。构造好的事项会显示到其中</param> /// <param name="bRefreshRefID">构造事项的过程中,是否要刷新每个事项的 RefID 成员值</param> /// <param name="changed_refids">累加修改过的 refid 对照表。 原来的 --> 新的</param> /// <param name="strError">返回出错信息</param> /// <returns>-1: 出错。错误信息在 strError 中; 0: 成功</returns> public int ImportFromXml(XmlNode nodeOrderCollection, ListView list, bool bRefreshRefID, ref Hashtable changed_refids, out string strError) { strError = ""; int nRet = 0; if (nodeOrderCollection == null) return 0; XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable()); nsmgr.AddNamespace("dprms", DpNs.dprms); XmlNodeList nodes = nodeOrderCollection.SelectNodes("dprms:order", nsmgr); for (int i = 0; i < nodes.Count; i++) { XmlNode node = nodes[i]; OrderItem order_item = new OrderItem(); nRet = order_item.SetData("", node.OuterXml, null, out strError); if (nRet == -1) return -1; if (bRefreshRefID == true) { string strOldRefID = order_item.RefID; order_item.RefID = Guid.NewGuid().ToString(); changed_refids[strOldRefID] = order_item.RefID; } this.Add(order_item); order_item.ItemDisplayState = ItemDisplayState.New; order_item.AddToListView(list); order_item.Changed = true; } return 0; }