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;