|
@@ -28,14 +28,14 @@ namespace SAGA.MBI.ToolsData.ModeCheck
|
|
|
myListbox.ItemsSource = checkItems;
|
|
|
Init();
|
|
|
this.DataContext = this;
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
private void Init()
|
|
|
{
|
|
|
ProjectList = MBIControl.ProjectTree.Children;
|
|
|
if (ProjectList.FirstOrDefault() != null)
|
|
|
- SetTreeState(ProjectList.FirstOrDefault(), true);
|
|
|
+ SetTreeItemState(ProjectList.FirstOrDefault(), true);
|
|
|
SavePath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory),
|
|
|
$"{MBIControl.ProjectCur}{m_CheckType.GetDescription()}检查结果.xlsx");
|
|
|
OFImage = CommonTool.GetBtnImagePath(SavePath);
|
|
@@ -105,7 +105,7 @@ namespace SAGA.MBI.ToolsData.ModeCheck
|
|
|
{
|
|
|
MessageBox.Show("请选择需要检查的建筑");
|
|
|
if (ProjectList.FirstOrDefault() != null)
|
|
|
- SetTreeState(ProjectList.FirstOrDefault(), true);
|
|
|
+ SetTreeItemState(ProjectList.FirstOrDefault(), true);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -135,27 +135,46 @@ namespace SAGA.MBI.ToolsData.ModeCheck
|
|
|
return context;
|
|
|
}
|
|
|
|
|
|
- private void TreeItemChecked_OnChecked(object sender, RoutedEventArgs e)
|
|
|
+ private void TreeItem_Click(object sender, RoutedEventArgs e)
|
|
|
{
|
|
|
if (sender is CheckBox chk)
|
|
|
{
|
|
|
bool state = chk.IsChecked == true;
|
|
|
if (chk.DataContext is TreeNodeItem node)
|
|
|
{
|
|
|
- //SetTreeState(node, state);
|
|
|
- SetChildrenState(node, state);
|
|
|
- SetParentState(node, state);
|
|
|
+ SetTreeItemState(node, state);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- private void SetTreeState(TreeNodeItem node, bool state)
|
|
|
+ /// <summary>
|
|
|
+ /// 设置节点状态
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="node"></param>
|
|
|
+ /// <param name="state"></param>
|
|
|
+ private void SetTreeItemState(TreeNodeItem node, bool state)
|
|
|
{
|
|
|
node.IsSelected = state;
|
|
|
SetChildrenState(node, state);
|
|
|
SetParentState(node, state);
|
|
|
+ CheckCheckItem();
|
|
|
}
|
|
|
-
|
|
|
+ /// <summary>
|
|
|
+ /// 获取检查项的默认选状态
|
|
|
+ /// </summary>
|
|
|
+ private void CheckCheckItem()
|
|
|
+ {
|
|
|
+ var floors = DalProjectTree.GetSelectedFloors();
|
|
|
+ if (floors.Count <= 1)
|
|
|
+ {
|
|
|
+ var checkItems = myListbox.ItemsSource as List<ICheckBase>;
|
|
|
+ checkItems?.ForEach(t => { if (t is ModeCheckBase mbase) if (mbase.RIsNeedTwoMoreFloors) t.RIsChecked = false; });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /// <summary>
|
|
|
+ /// 设置子节点状态
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="node"></param>
|
|
|
+ /// <param name="state"></param>
|
|
|
private void SetChildrenState(TreeNodeItem node, bool state)
|
|
|
{
|
|
|
foreach (TreeNodeItem child in node.Children)
|
|
@@ -163,7 +182,11 @@ namespace SAGA.MBI.ToolsData.ModeCheck
|
|
|
child.IsSelected = state;
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ /// <summary>
|
|
|
+ /// 设置父节点状态
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="node"></param>
|
|
|
+ /// <param name="state"></param>
|
|
|
private void SetParentState(TreeNodeItem node, bool state)
|
|
|
{
|
|
|
if (node.Parent != null)
|
|
@@ -182,11 +205,26 @@ namespace SAGA.MBI.ToolsData.ModeCheck
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- node.Parent.IsSelected = node.Parent.Children.Any(t=>t.IsSelected);
|
|
|
+ node.Parent.IsSelected = node.Parent.Children.Any(t => t.IsSelected);
|
|
|
SetParentState(node.Parent, state);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ private void CheckItem_Click(object sender, RoutedEventArgs e)
|
|
|
+ {
|
|
|
+ if (sender is CheckBox chk)
|
|
|
+ {
|
|
|
+ if (chk.IsChecked == true)
|
|
|
+ {
|
|
|
+ var checkItem = chk.DataContext as ModeCheckBase;
|
|
|
+ if (checkItem.RIsNeedTwoMoreFloors)
|
|
|
+ {
|
|
|
+ MessageBox.Show("请选择两个及以上楼层再检查此项");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|