diff --git a/src/ReactiveUI.Avalonia.ViewToViewModelBindings/ReactiveUI.Avalonia.ViewToViewModelBindings.csproj b/src/ReactiveUI.Avalonia.ViewToViewModelBindings/ReactiveUI.Avalonia.ViewToViewModelBindings.csproj
index 7aa9afc8..a0a519fb 100644
--- a/src/ReactiveUI.Avalonia.ViewToViewModelBindings/ReactiveUI.Avalonia.ViewToViewModelBindings.csproj
+++ b/src/ReactiveUI.Avalonia.ViewToViewModelBindings/ReactiveUI.Avalonia.ViewToViewModelBindings.csproj
@@ -18,7 +18,7 @@
-
+
diff --git a/src/Vetuviem.SourceGenerator/Features/ControlBindingModels/ControlBindingModelPropertyGenerator.cs b/src/Vetuviem.SourceGenerator/Features/ControlBindingModels/ControlBindingModelPropertyGenerator.cs
index 823a50ce..954b9333 100644
--- a/src/Vetuviem.SourceGenerator/Features/ControlBindingModels/ControlBindingModelPropertyGenerator.cs
+++ b/src/Vetuviem.SourceGenerator/Features/ControlBindingModels/ControlBindingModelPropertyGenerator.cs
@@ -148,16 +148,22 @@ private static bool ReplacesBaseProperty(
while (baseType != null)
{
var nameMatches = baseType.GetMembers()
- .Where(x => x.Kind == SymbolKind.Property && x.Name.Equals(wantedName, StringComparison.Ordinal))
+ .Where(x => x.Kind == SymbolKind.Property && x.Name.Equals(wantedName, StringComparison.Ordinal) && x.DeclaredAccessibility == Accessibility.Public)
.Cast()
.ToImmutableArray();
- foreach (var nameMatch in nameMatches)
+ if (nameMatches.Length > 0)
{
- if (SymbolEqualityComparer.Default.Equals(nameMatch.Type, propertySymbol.Type))
+ foreach (var nameMatch in nameMatches)
{
- return !propertySymbol.IsOverride;
+ if (SymbolEqualityComparer.Default.Equals(nameMatch.Type, propertySymbol.Type))
+ {
+ return !propertySymbol.IsOverride;
+ }
}
+
+ // we didn't match by type, so assume it's a new implementation on a new type.
+ return true;
}
baseType = baseType.BaseType;