I'm trying to implement an abstract C# class in C++/CLI. This abstract base class is already implementing INotifyPropertyChanged and as mentioned written in C#:
public abstract class BaseClass : INotifyPropertyChanged
In the C++/CLI assembly, I do have another interface that implements INotifyPropertyChanged:
public interface class IAnotherNotifyPropertyChangedClass : public INotifyPropertyChanged
Now, when inheriting from the abstract C# class BaseClass and implementing IAnotherNotifyPropertyChangedClass in C++/CLI I get the following:
public ref class AnotherNotifyPropertyChangedClass : public BaseClass, public IAnotherNotifyPropertyChangedClass
This results then in following compiling error:
error C3766: 'AnotherNotifyPropertyChangedClass' must provide an implementation for the interface method 'void System::ComponentModel::INotifyPropertyChanged::PropertyChanged::add(System::ComponentModel::PropertyChangedEventHandler ^)'
As soon as I remove the INotifyPropertyChanged from IAnotherNotifyPropertyChangedClass interface declaration, everything compiles fine. Why is that? This declaration would compile fine when using C#. I'm using VS 2012 and compile a .NET 3.5 mixed mode assembly.
Thanks in advance!
Cheers!
Edit: Similar problem (w/o C#) here: http://social.msdn.microsoft.com/Forums/en-US/winappswithnativecode/thread/3047b8d1-348c-4ca6-b3f3-c396c03fedf7/ So is this behavior in C++/CLI by design?!