/// <summary>
        /// 연결되지 않은 커넥션을 삭제해준다.
        /// </summary>
        public void checkConnectionState()
        {
            var cons = Navidiagram.Items.OfType <RadDiagramConnection>().Where(x => x.Source == null || x.Target == null).ToList();

            foreach (RadDiagramConnection item in cons)
            {
                Navidiagram.RemoveConnection(item);
            }
        }
        /// <summary>
        /// 경로 다이어그램 모델 삭제시 발생하는 이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void NaviDeleteCommandExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            List <NaviShape>            deldatas = new List <NaviShape>();
            List <RadDiagramConnection> delcons  = new List <RadDiagramConnection>();

            //삭제 shape 파악
            foreach (var item in Navidiagram.SelectedItems)
            {
                //NaviShape 가 삭제 되면 3D 부분에서도 삭제해야함.
                if (item is NaviShape)
                {
                    NaviShape delshape = item as NaviShape;
                    //VIewer3D.Instance.NaviPointGridRemove(delshape.NaviPointX, delshape.NaviPointY);

                    deldatas.Add(delshape);
                }
                else if (item is RadDiagramConnection)
                {
                    RadDiagramConnection delitem = item as RadDiagramConnection;
                    delcons.Add(delitem);
                }
            }

            if (deldatas.Count > 0)
            {
                VIewer3D.Instance.RemoveNaviPoints();
            }

            for (int i = 0; i < delcons.Count; i++)
            {
                Navidiagram.RemoveConnection(delcons[i]);
            }

            for (int i = 0; i < deldatas.Count; i++)
            {
                //삭제되는 shape에 connection 이 있는지 확인한다.
                //있는경우는 전부 삭제한다.
                var srcCon = Navidiagram.Items.OfType <RadDiagramConnection>().Where(x => x.Source == deldatas[i]).ToList();
                if (srcCon.Count > 0)
                {
                    foreach (RadDiagramConnection item in srcCon)
                    {
                        Navidiagram.RemoveConnection(item);
                    }
                }
                var dstCon = Navidiagram.Items.OfType <RadDiagramConnection>().Where(x => x.Target == deldatas[i]).ToList();
                if (dstCon.Count > 0)
                {
                    foreach (RadDiagramConnection item in dstCon)
                    {
                        Navidiagram.RemoveConnection(item);
                    }
                }
                Navidiagram.RemoveShape(deldatas[i]);
            }

            reConnection();

            if (loadTime == false)
            {
                Save();
            }


            resetNodeNumber();
        }