Index: Core/Gui/src/Core.Gui/Forms/Backstage/InfoViewModel.cs =================================================================== diff -u -rcc6f4b74f54064ceb7bdd1a04676c569218778d4 -r99a8e3e1ae1fe1237ccfd3a16a37b00e0edb595a --- Core/Gui/src/Core.Gui/Forms/Backstage/InfoViewModel.cs (.../InfoViewModel.cs) (revision cc6f4b74f54064ceb7bdd1a04676c569218778d4) +++ Core/Gui/src/Core.Gui/Forms/Backstage/InfoViewModel.cs (.../InfoViewModel.cs) (revision 99a8e3e1ae1fe1237ccfd3a16a37b00e0edb595a) @@ -47,6 +47,11 @@ get => project?.Description; set { + if (project == null) + { + return; + } + project.Description = value; OnPropertyChanged(nameof(ProjectDescription)); } Index: Core/Gui/test/Core.Gui.Test/Forms/Backstage/InfoViewModelTest.cs =================================================================== diff -u -r9a5cee082a60641cdc3661d5aabf2bb04f8bc445 -r99a8e3e1ae1fe1237ccfd3a16a37b00e0edb595a --- Core/Gui/test/Core.Gui.Test/Forms/Backstage/InfoViewModelTest.cs (.../InfoViewModelTest.cs) (revision 9a5cee082a60641cdc3661d5aabf2bb04f8bc445) +++ Core/Gui/test/Core.Gui.Test/Forms/Backstage/InfoViewModelTest.cs (.../InfoViewModelTest.cs) (revision 99a8e3e1ae1fe1237ccfd3a16a37b00e0edb595a) @@ -73,6 +73,29 @@ } [Test] + public void GivenViewModelWithoutProject_WhenSettingProjectDescription_ThenExpectedValueAndNoPropertyChangedEventFired() + { + // Given + const string description = "new description"; + + var mocks = new MockRepository(); + mocks.ReplayAll(); + + var viewModel = new InfoViewModel(); + + var propertyNames = new List(); + viewModel.PropertyChanged += (sender, args) => { propertyNames.Add(args.PropertyName); }; + + // When + viewModel.ProjectDescription = description; + + // Then + Assert.IsNull(viewModel.ProjectDescription); + CollectionAssert.IsEmpty(propertyNames); + mocks.VerifyAll(); + } + + [Test] public void SetProject_ProjectNull_ExpectedValuesAndPropertyChangedEventsFired() { // Setup