diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml index b8f439797f..189001c48e 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml @@ -36,7 +36,7 @@ + Text="{Binding Path=ViewName, UpdateSourceTrigger=PropertyChanged}"/> AddMvcView()); + AddMvcViewCommand = new DelegateCommand(param => AddMvcView(), param => CanAddMvcView()); } public ICommand AddMvcViewCommand { get; private set; } @@ -56,6 +56,11 @@ namespace ICSharpCode.AspNet.Mvc } } + public bool CanAddMvcView() + { + return viewFileName.HasValidViewName(); + } + public void AddMvcView() { GenerateMvcViewFile(); diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcViewFileName.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcViewFileName.cs index 2f4fc82229..4557aefc0e 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcViewFileName.cs +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcViewFileName.cs @@ -69,5 +69,10 @@ namespace ICSharpCode.AspNet.Mvc } return "View1"; } + + public bool HasValidViewName() + { + return !String.IsNullOrEmpty(viewName); + } } } diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs index f1becb4aab..75be80169d 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs @@ -167,5 +167,27 @@ namespace AspNet.Mvc.Tests Assert.AreEqual(expectedFileNameOpened, fileNameOpened); } + + [Test] + public void AddMvcViewCommand_ViewNameIsEmptyString_CommandIsDisabled() + { + CreateViewModel(); + viewModel.ViewName = String.Empty; + + bool canExecute = viewModel.AddMvcViewCommand.CanExecute(null); + + Assert.IsFalse(canExecute); + } + + [Test] + public void AddMvcViewCommand_ViewNameIsNotEmptyString_CommandIsEnable() + { + CreateViewModel(); + viewModel.ViewName = "MyView"; + + bool canExecute = viewModel.AddMvcViewCommand.CanExecute(null); + + Assert.IsTrue(canExecute); + } } }