diff --git a/Samples/Container/RestrictNodeFromContainer/README.md b/Samples/Container/RestrictNodeFromContainer/README.md
new file mode 100644
index 00000000..54636968
--- /dev/null
+++ b/Samples/Container/RestrictNodeFromContainer/README.md
@@ -0,0 +1,14 @@
+# RestrictNodeFromContainer sample
+
+This sample explains how to restrict node is being removed from its parent container when dragging.
+
+__*Documentation*__: https://help.syncfusion.com/wpf/diagram/container
+
+## Project pre-requisites
+To run this application, you need to have the below two in your system
+
+* [Visual Studio 2019](https://www.visualstudio.com/wpf-vs)
+* [Syncfusion.SfDiagram.WPF](https://www.nuget.org/packages/Syncfusion.SfDiagram.WPF/) nuget package. To install the package using NuGet Package Manager, refer this [link](https://docs.microsoft.com/en-us/nuget/quickstart/install-and-use-a-package-in-visual-studio#nuget-package-manager).
+
+## Deploying and running the sample
+* To debug the sample and then run it, press F5 or select Debug > Start Debugging. To run the sample without debugging, press Ctrl+F5 or selectDebug > Start Without Debugging.
diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer.sln b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer.sln
new file mode 100644
index 00000000..1913898d
--- /dev/null
+++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer.sln
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.8.34309.116
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RestrictNodeFromContainer", "RestrictNodeFromContainer\RestrictNodeFromContainer.csproj", "{69520CAF-FA5D-42BC-9D32-A7ACB2259509}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {69520CAF-FA5D-42BC-9D32-A7ACB2259509}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {69520CAF-FA5D-42BC-9D32-A7ACB2259509}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {69520CAF-FA5D-42BC-9D32-A7ACB2259509}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {69520CAF-FA5D-42BC-9D32-A7ACB2259509}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {5BAE0B49-4312-4887-B241-C0F900EB9495}
+ EndGlobalSection
+EndGlobal
diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.config b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.config
new file mode 100644
index 00000000..b50c74f3
--- /dev/null
+++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.config
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml
new file mode 100644
index 00000000..ee439459
--- /dev/null
+++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml
@@ -0,0 +1,9 @@
+
+
+
+
+
diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml.cs b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml.cs
new file mode 100644
index 00000000..98986893
--- /dev/null
+++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/App.xaml.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Configuration;
+using System.Data;
+using System.Linq;
+using System.Threading.Tasks;
+using System.Windows;
+
+namespace RestrictNodeFromContainer
+{
+ ///
+ /// Interaction logic for App.xaml
+ ///
+ public partial class App : Application
+ {
+ }
+}
diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml
new file mode 100644
index 00000000..1c4203a3
--- /dev/null
+++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml.cs b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml.cs
new file mode 100644
index 00000000..675a5301
--- /dev/null
+++ b/Samples/Container/RestrictNodeFromContainer/RestrictNodeFromContainer/RestrictNodeFromContainer/MainWindow.xaml.cs
@@ -0,0 +1,146 @@
+using Syncfusion.UI.Xaml.Diagram;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Data;
+using System.Windows.Documents;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Imaging;
+using System.Windows.Navigation;
+using System.Windows.Shapes;
+
+namespace RestrictNodeFromContainer
+{
+ ///
+ /// Interaction logic for MainWindow.xaml
+ ///
+ public partial class MainWindow : Window
+ {
+ public MainWindow()
+ {
+ InitializeComponent();
+ diagram.Groups = new GroupCollection();
+ diagram.Nodes = new NodeCollection();
+ (diagram.Info as IGraphInfo).NodeChangedEvent += MainWindow_NodeChangedEvent;
+ (diagram.Info as IGraphInfo).ItemAdded += MainWindow_ItemAdded;
+ CustomNodeVM node1 = new CustomNodeVM()
+ {
+ ID = "Node1",
+ UnitWidth = 100,
+ UnitHeight = 100,
+ OffsetX = 250,
+ OffsetY = 260,
+ //Specify shape to the Node from built-in Shape Dictionary
+ Shape = this.Resources["Rectangle"],
+
+ };
+
+ //Add Node to Nodes property of the Diagram
+ (diagram.Nodes as NodeCollection).Add(node1);
+
+
+ CustomNodeVM node2 = new CustomNodeVM()
+ {
+ ID = "Node2",
+ UnitWidth = 100,
+ UnitHeight = 100,
+ OffsetX = 380,
+ OffsetY = 380,
+ //Specify shape to the Node from built-in Shape Dictionary
+ Shape = this.Resources["Rectangle"],
+
+ };
+
+ //Add Node to Nodes property of the Diagram
+ (diagram.Nodes as NodeCollection).Add(node2);
+
+
+ ObservableCollection groups = new ObservableCollection();
+ ContainerViewModel container = new ContainerViewModel()
+ {
+ Nodes = new ObservableCollection() { node1, node2 },
+ UnitHeight = 300,
+ UnitWidth = 300,
+ OffsetX = 300,
+ OffsetY = 300,
+ };
+ container.Header = new ContainerHeaderViewModel()
+ {
+ UnitHeight = 30,
+
+ Annotation = new AnnotationEditorViewModel()
+ {
+ Content = "Container Header",
+ FontSize = 16,
+ FontWeight = FontWeights.Bold,
+ Foreground = Brushes.Black,
+ ReadOnly = true,
+ },
+ };
+ groups.Add(container);
+ diagram.Groups = groups;
+ }
+
+ private void MainWindow_ItemAdded(object sender, ItemAddedEventArgs args)
+ {
+ if (args.Item is ContainerViewModel)
+ {
+ var container = (ContainerViewModel)args.Item;
+ if ((container.Nodes as IEnumerable