private void AddNewItem_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) { TimeSpan du = TimeSpan.FromMilliseconds(400); AddOrDeleteButton tb = sender as AddOrDeleteButton; RotateTransform rotateTrans = new RotateTransform(); tb.RenderTransform = rotateTrans; DoubleAnimation rotateAnim = new DoubleAnimation(45, du); rotateTrans.BeginAnimation(RotateTransform.AngleProperty, rotateAnim); tb.MouseLeftButtonUp -= AddNewItem_MouseLeftButtonUp; tb.MouseLeftButtonUp += DeleteItem_MouseLeftButtonUp; DependencyObject dListView = tb; DependencyObject scrollViewer = tb; while (!(dListView is 一个二级部件)) { dListView = VisualTreeHelper.GetParent(dListView); } while (!(scrollViewer is ScrollViewer)) { scrollViewer = VisualTreeHelper.GetParent(scrollViewer); } 一个二级部件 ListView = dListView as 一个二级部件; 一条指标 ListViewItem = new 一条指标(); ListView.指标集合.Add(ListViewItem); (scrollViewer as ScrollViewer).ScrollToBottom(); ScaleTransform scaleTransform = new ScaleTransform(); ListViewItem.RenderTransform = scaleTransform; DoubleAnimation scaleAnim = new DoubleAnimation(0, 1, du); scaleTransform.BeginAnimation(ScaleTransform.ScaleYProperty, scaleAnim); }
private void 导入桥梁组成结构(XmlNode 桥梁组成结构, ObservableCollection<一个一级部件> 一级部件集合) { try { 一级部件集合.Clear(); #region 桥梁组成一级部件 foreach (XmlNode 桥梁组成一级部件 in 桥梁组成结构) { 一个一级部件 s = new 一个一级部件(false); 一级部件集合.Add(s); s.二级部件集合.Clear(); s.桥梁组成一级部件参数.部件名称 = 桥梁组成一级部件.Attributes["部件名称"].Value; bool sbResult; s.桥梁组成一级部件参数.是否主要部件 = bool.TryParse(桥梁组成一级部件.Attributes["是否主要部件"].Value, out sbResult) ? sbResult : false; double sdResult; s.桥梁组成一级部件参数.部件权重 = double.TryParse(桥梁组成一级部件.Attributes["部件权重"].Value, out sdResult) ? sdResult : 0; bool sb2Result; s.桥梁组成一级部件参数.IsExist = bool.TryParse(桥梁组成一级部件.Attributes["IsExist"].Value, out sb2Result) ? sb2Result : false; #region 桥梁组成二级部件 foreach (XmlNode 桥梁组成二级部件 in 桥梁组成一级部件) { 一个二级部件 ss = new 一个二级部件(false); s.二级部件集合.Add(ss); ss.指标集合.Clear(); bool ssbResult; ss.桥梁组成二级部件参数.是否主要部件 = bool.TryParse(桥梁组成二级部件.Attributes["是否主要部件"].Value, out ssbResult) ? ssbResult : false; int ssiResult; ss.桥梁组成二级部件参数.构件数 = int.TryParse(桥梁组成二级部件.Attributes["构件数"].Value, out ssiResult) ? ssiResult : 1; ss.桥梁组成二级部件参数.部件名称 = 桥梁组成二级部件.Attributes["部件名称"].Value; double ssdResult; ss.桥梁组成二级部件参数.部件权重 = double.TryParse(桥梁组成二级部件.Attributes["部件权重"].Value, out ssdResult) ? ssdResult : 0; bool ssb2Result; ss.桥梁组成二级部件参数.IsExist = bool.TryParse(桥梁组成二级部件.Attributes["IsExist"].Value, out ssb2Result) ? ssb2Result : false; #region 检查指标 foreach (XmlNode 检查指标 in 桥梁组成二级部件) { 一条指标 sss = new 一条指标(false); ss.指标集合.Add(sss); sss.标度及其说明集合.Clear(); sss.检查指标参数.指标名称 = 检查指标.Attributes["指标名称"].Value; #region 标度及其说明 foreach (XmlNode 标度及其说明 in 检查指标) { 一条标度及说明 ssss = new 一条标度及说明(); int iResult; ssss.标度及其说明.标度 = int.TryParse(标度及其说明.Attributes["标度"].Value, out iResult) ? iResult : 0; if ((标度及其说明 as XmlElement).HasAttribute("是否存在")) { bool ssssbResult; ssss.标度及其说明.IsExist = bool.TryParse(标度及其说明.Attributes["是否存在"].Value, out ssssbResult) ? ssssbResult : false; } if ((标度及其说明 as XmlElement).HasAttribute("IsExist")) { bool ssssbResult; ssss.标度及其说明.IsExist = bool.TryParse(标度及其说明.Attributes["IsExist"].Value, out ssssbResult) ? ssssbResult : false; } ssss.标度及其说明.定性说明 = 标度及其说明.Attributes["定性说明"].Value; ssss.标度及其说明.定量说明 = 标度及其说明.Attributes["定量说明"].Value; sss.标度及其说明集合.Add(ssss); } #endregion //ss.指标集合.Add(sss); } #endregion 一条指标 temp0 = new 一条指标(); temp0.检查指标参数.指标名称 = ss.指标集合.Last().检查指标参数.指标名称; temp0.检查指标参数.标度及其说明集合 = ss.指标集合.Last().检查指标参数.标度及其说明集合; temp0.标度及其说明集合 = ss.指标集合.Last().标度及其说明集合; ss.指标集合[ss.指标集合.Count - 1] = temp0; //s.二级部件集合.Add(ss); } #endregion 一个二级部件 temp1 = new 一个二级部件(); if (s.二级部件集合.Count == 0) { s.二级部件集合.Add(new 一个二级部件(true)); } //temp1.桥梁组成二级部件参数 = s.二级部件集合.Last()?.桥梁组成二级部件参数; temp1.桥梁组成二级部件参数.IsExist = s.二级部件集合.Last().桥梁组成二级部件参数.IsExist; temp1.桥梁组成二级部件参数.是否主要部件 = s.二级部件集合.Last().桥梁组成二级部件参数.是否主要部件; temp1.桥梁组成二级部件参数.构件数 = s.二级部件集合.Last().桥梁组成二级部件参数.构件数; temp1.桥梁组成二级部件参数.检查指标集合 = s.二级部件集合.Last().桥梁组成二级部件参数.检查指标集合; temp1.桥梁组成二级部件参数.部件名称 = s.二级部件集合.Last().桥梁组成二级部件参数.部件名称; temp1.桥梁组成二级部件参数.部件权重 = s.二级部件集合.Last().桥梁组成二级部件参数.部件权重; temp1.指标集合 = s.二级部件集合.Last().指标集合; s.二级部件集合[s.二级部件集合.Count - 1] = temp1; //一级部件集合.Add(s); } #endregion 一个一级部件 temp2 = new 一个一级部件(); if (一级部件集合.Count == 0) { 一级部件集合.Add(new 一个一级部件(true)); } //temp2.桥梁组成一级部件参数 = 一级部件集合.Last().桥梁组成一级部件参数; temp2.桥梁组成一级部件参数.IsExist = 一级部件集合.Last().桥梁组成一级部件参数.IsExist; temp2.桥梁组成一级部件参数.是否主要部件 = 一级部件集合.Last().桥梁组成一级部件参数.是否主要部件; temp2.桥梁组成一级部件参数.桥梁组成二级部件集合 = 一级部件集合.Last().桥梁组成一级部件参数.桥梁组成二级部件集合; temp2.桥梁组成一级部件参数.部件名称 = 一级部件集合.Last().桥梁组成一级部件参数.部件名称; temp2.桥梁组成一级部件参数.部件权重 = 一级部件集合.Last().桥梁组成一级部件参数.部件权重; temp2.二级部件集合 = 一级部件集合.Last().二级部件集合; 一级部件集合[一级部件集合.Count - 1] = temp2; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }