CommunityToolkit / dotnet

.NET Community Toolkit is a collection of helpers and APIs that work for all .NET developers and are agnostic of any specific UI platform. The toolkit is maintained and published by Microsoft, and part of the .NET Foundation.

Home Page:https://docs.microsoft.com/dotnet/communitytoolkit/?WT.mc_id=dotnet-0000-bramin

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Generating of `[ObservableObject]` fails if interface is declared but not implemented

ShortDevelopment opened this issue · comments

Describe the bug

If a class implements an interface that itself inherits INotifyPropertyChanged or INotifyPropertyChanging but does not implement the interface methods, code-generation aborts.

Current tests only test diagnostics for an implementation of INotifyPropertyChanged / INotifyPropertyChanging:

[INotifyPropertyChanged]
public partial class SampleViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler? PropertyChanged;
}

Regression

No response

Steps to reproduce

interface IStuff : INotifyPropertyChanged {
   // ...
}

[ObservableObject]
class B : BaseClass, IStuff {
   // No implementation of INotifyPropertyChanged 
   // source generation
}

Expected behavior

The implementation of INotifyPropertyChanged should be generated.

Screenshots

No response

IDE and version

VS 2022

IDE version

No response

Nuget packages

  • CommunityToolkit.Mvvm (aka MVVM Toolkit)

Nuget package version(s)

8.2.2

Additional context

Similar to #620 but slightly different scenario

Help us help you

Yes, I'd like to be assigned to work on this item