diff --git a/src/Markup/Perspex.Markup/Data/Plugins/InpcPropertyAccessorPlugin.cs b/src/Markup/Perspex.Markup/Data/Plugins/InpcPropertyAccessorPlugin.cs index 13970a9054..c52d1a3a26 100644 --- a/src/Markup/Perspex.Markup/Data/Plugins/InpcPropertyAccessorPlugin.cs +++ b/src/Markup/Perspex.Markup/Data/Plugins/InpcPropertyAccessorPlugin.cs @@ -105,7 +105,7 @@ namespace Perspex.Markup.Data.Plugins private void PropertyChanged(object sender, PropertyChangedEventArgs e) { - if (e.PropertyName == _property.Name) + if (e.PropertyName == _property.Name || string.IsNullOrEmpty(e.PropertyName)) { _changed(Value); } diff --git a/tests/Perspex.Markup.UnitTests/Data/ExpressionObserverTests_Property.cs b/tests/Perspex.Markup.UnitTests/Data/ExpressionObserverTests_Property.cs index fe9336ebe6..7730c18303 100644 --- a/tests/Perspex.Markup.UnitTests/Data/ExpressionObserverTests_Property.cs +++ b/tests/Perspex.Markup.UnitTests/Data/ExpressionObserverTests_Property.cs @@ -101,7 +101,10 @@ namespace Perspex.Markup.UnitTests.Data var sub = target.Subscribe(x => result.Add(x)); data.Foo = "bar"; - Assert.Equal(new[] { "foo", "bar" }, result); + data.RaisePropertyChanged(string.Empty); + data.RaisePropertyChanged(null); + + Assert.Equal(new[] { "foo", "bar", "bar", "bar" }, result); sub.Dispose(); @@ -333,6 +336,11 @@ namespace Perspex.Markup.UnitTests.Data RaisePropertyChanged(nameof(Next)); } } + + public void RaisePropertyChanged(string propertyName) + { + base.RaisePropertyChanged(propertyName); + } } private class Class2 : NotifyingBase, INext