diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml
index e727f53b25..6a8582065c 100644
--- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml
+++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml
@@ -113,39 +113,42 @@
+ Grid.Column="1"
+ IsEnabled="{Binding Path=IsContentPagePropertiesEnabled}">
@@ -162,13 +164,13 @@
viewModel.IsContentPage);
+ OnPropertyChanged(viewModel => viewModel.IsContentPagePropertiesEnabled);
}
}
+ public bool IsContentPageEnabled {
+ get { return !IsPartialView; }
+ }
+
+ public bool IsContentPagePropertiesEnabled {
+ get { return IsContentPage && IsContentPageEnabled; }
+ }
+
public bool CanAddMvcView()
{
return viewFileName.HasValidViewName();
@@ -275,7 +284,11 @@ namespace ICSharpCode.AspNet.Mvc
public bool IsPartialView {
get { return viewFileName.IsPartialView; }
- set { viewFileName.IsPartialView = value; }
+ set {
+ viewFileName.IsPartialView = value;
+ OnPropertyChanged(viewModel => viewModel.IsContentPageEnabled);
+ OnPropertyChanged(viewModel => viewModel.IsContentPagePropertiesEnabled);
+ }
}
public bool IsStronglyTypedView {
diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs
index 3939845ae2..b52a0e33a5 100644
--- a/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs
+++ b/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs
@@ -1148,5 +1148,100 @@ namespace AspNet.Mvc.Tests
Assert.IsTrue(fired);
}
+
+ [Test]
+ public void IsContentPageEnabled_IsPartialViewIsNotSelected_ReturnsTrue()
+ {
+ CreateViewModel();
+ viewModel.IsPartialView = false;
+ bool enabled = viewModel.IsContentPageEnabled;
+
+ Assert.IsTrue(enabled);
+ }
+
+ [Test]
+ public void IsContentPageEnabled_IsPartialViewIsSelected_ReturnsFalse()
+ {
+ CreateViewModel();
+ viewModel.IsPartialView = true;
+ bool enabled = viewModel.IsContentPageEnabled;
+
+ Assert.IsFalse(enabled);
+ }
+
+ [Test]
+ public void IsPartialView_IsPartialViewChangedFromTrueToFalse_IsContentPageEnabledPropertyChangedEventIsFired()
+ {
+ CreateViewModel();
+ viewModel.IsPartialView = true;
+ MonitorPropertyChangedEvents();
+ viewModel.IsPartialView = false;
+ SelectRazorViewEngine();
+
+ bool fired = propertyChangedEvents.Contains("IsContentPageEnabled");
+
+ Assert.IsTrue(fired);
+ }
+
+ [Test]
+ public void IsContentPagePropertiesEnabled_IsPartialViewIsNotSelectedAndIsContentPageIsSelected_ReturnsTrue()
+ {
+ CreateViewModel();
+ viewModel.IsPartialView = false;
+ viewModel.IsContentPage = true;
+ bool enabled = viewModel.IsContentPagePropertiesEnabled;
+
+ Assert.IsTrue(enabled);
+ }
+
+ [Test]
+ public void IsContentPagePropertiesEnabled_IsPartialViewIsNotSelectedAndIsContentPageIsNotSelected_ReturnsFalse()
+ {
+ CreateViewModel();
+ viewModel.IsPartialView = false;
+ viewModel.IsContentPage = false;
+ bool enabled = viewModel.IsContentPagePropertiesEnabled;
+
+ Assert.IsFalse(enabled);
+ }
+
+ [Test]
+ public void IsContentPagePropertiesEnabled_IsPartialViewIsSelectedAndIsContentPageIsSelected_ReturnsFalse()
+ {
+ CreateViewModel();
+ viewModel.IsPartialView = true;
+ viewModel.IsContentPage = true;
+ bool enabled = viewModel.IsContentPagePropertiesEnabled;
+
+ Assert.IsFalse(enabled);
+ }
+
+ [Test]
+ public void IsPartialView_IsPartialViewChangedFromTrueToFalse_IsContentPagePropertiesEnabledPropertyChangedEventIsFired()
+ {
+ CreateViewModel();
+ viewModel.IsPartialView = true;
+ MonitorPropertyChangedEvents();
+ viewModel.IsPartialView = false;
+ SelectRazorViewEngine();
+
+ bool fired = propertyChangedEvents.Contains("IsContentPagePropertiesEnabled");
+
+ Assert.IsTrue(fired);
+ }
+
+ [Test]
+ public void IsPartialView_IsContentPageChangedFromTrueToFalse_IsContentPagePropertiesEnabledPropertyChangedEventIsFired()
+ {
+ CreateViewModel();
+ viewModel.IsContentPage = true;
+ MonitorPropertyChangedEvents();
+ viewModel.IsContentPage = false;
+ SelectRazorViewEngine();
+
+ bool fired = propertyChangedEvents.Contains("IsContentPagePropertiesEnabled");
+
+ Assert.IsTrue(fired);
+ }
}
}