Change your IUserDefinedListEditViewModel interface to:
public interface IUserDefinedListEditViewModel<T1,T2> where T1 : IUserDefinedListEntryEditViewModel<T2>, where T2 : IBaseUserDefinedListModel After that, and update the implementation in APEditViewModel:
public class APEditViewModel : IUserDefinedListEditViewModel<APEntryEditViewModel, APModel> The error indicates that with the generic constraint
where T : IUserDefinedListEntryEditViewModel<IBaseUserDefinedListModel> only IUserDefinedListEntryEditViewModel<IBaseUserDefinedListModel> and types which implement this interface will be accepted as T. If you want any IBaseUserDefinedListModel to be accepted in the type parameter of T, you need to make it generic as well.