private void PageView_Drop(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent("DataItemFormat"))
            {
                var dataItem = e.Data.GetData("DataItemFormat") as DataItem;

                if (dataItem != null)
                {
                    var   parent = (ContentControl)sender;
                    var   page   = parent.DataContext as PageItem;
                    Point p      = e.GetPosition(parent);

                    var item = new DataBlockLogicItem()
                    {
                        Id          = dataItem.Id,
                        Designation = dataItem.Designation,
                        Signal      = dataItem.Signal,
                        Description = dataItem.Description,
                        Condition   = dataItem.Condition,
                        IsNew       = false,
                        IsModified  = false,
                        IsDeleted   = false,
                        X           = p.X,
                        Y           = p.Y,
                        Z           = 1
                    };

                    SnapDataBlockLogicItem(item, 0.0, 0.0, DataBlockSnapMode.Auto);

                    page.Items.Add(item);
                }
            }
        }
        void InsertDataBlockLogic(PageItem page, DataBlockSnapMode mode)
        {
            //Point p = GetClickLocation(0.0, 0.0);
            Point p = new Point(RightClick.X, RightClick.Y);

            var item = new DataBlockLogicItem()
            {
                IsNew       = false,
                IsModified  = false,
                IsDeleted   = false,
                Designation = "Designation",
                Signal      = "Signal",
                Description = "Description",
                Condition   = "Condition",
                X           = p.X,
                Y           = p.Y,
                Z           = 1
            };

            SnapDataBlockLogicItem(item, 0.0, 0.0, mode);
            page.Items.Add(item);
        }