protected override void StartDrag(Point position)
        {
            //Start dragging
            PerformOperation(f =>
            {
                var functionCall = SystemPluginFactory.CreateFunctionCallClipboardData(f.Id);

                DragDrop.DoDragDrop(AssociatedObject, functionCall, DragDropEffects.Link);
            });
        }
        static HostViewModelLocator()
        {
            var customResources = new View.CustomResources();

            customResources.InitializeComponent();

            var commentFactory = new ElementFactory(CustomElementTypeIds.Comment, "Custom", "Comment",
                                                    context => new CommentViewModel(context), typeof(CommentViewModel));

            var functionService = new FunctionService(GetFunctions, GetFunction, EditFunction);

            IRuntimeServiceFactory[] runtimeServiceFactories = new IRuntimeServiceFactory[]
            {
                new MyRuntimeServiceFactory(),
            };

            var factories = new IElementFactory[]
            {
                commentFactory,
            };

            //Create the plugin
            var plugin = new VplPlugin(
                "Host",
                factories,
                new[] { customResources },
                services: new[] { functionService },
                runtimeServiceFactories: runtimeServiceFactories);

            //var plugin1 = new VplPlugin("Alert",
            //    new IElementFactory[]
            //    {
            //        new ElementFactory(new Guid("FBB6804C-B90C-4A88-B28B-8B733C1A9F0D"), "Interaction", "Alert", context => new Alert(context), typeof(Alert)),
            //    });

            var plugins = SystemPluginFactory.CreateAllPlugins()
                          .ToList();

            plugins.Add(plugin);
            //plugins.Add(plugin1);

            //Create the service
            VplService = new VplService(plugins);
        }