diff --git a/MVVM/DelegateCommand.cs b/MVVM/DelegateCommand.cs
new file mode 100644
index 0000000..3d14b55
--- /dev/null
+++ b/MVVM/DelegateCommand.cs
@@ -0,0 +1,297 @@
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Windows;
+using System.Windows.Input;
+using System.Windows.Threading;
+
+namespace Command
+{
+
+ ///
+ /// Provides an implementation which relays the Execute and CanExecute
+ /// method to the specified delegates.
+ ///
+ public class DelegateCommand : ICommand
+ {
+ #region Static disabled command
+
+ ///
+ /// A instance that does nothing and can never be executed.
+ ///
+ public static readonly DelegateCommand Disabled = new DelegateCommand(() => { }) { IsEnabled = false };
+
+ #endregion Static disabled command
+
+ #region Private data
+
+ private readonly Action