Default interface property returns object ToString

using the following interface:

public interface INameable
{
    /// <summary>
    /// The customer provided name of the object
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// combination of the ObjectName and the customer provided name used to quickly display items in lists to prevent the need for reflexction
    /// </summary>
    public string ObjectAndName => $"({ObjectName}) {Name}";

    /// <summary>
    /// The coloquial name of the object
    /// </summary>
    public string ObjectName { get; }
}

and this class

public class Ink : Changeable, INameable
{
    [Key]
    public Guid InkId { get; init; } = Guid.NewGuid();
    public string Color { get; set; }
    public string Name { get => Color; set => Color = value; }
    public string ObjectName => "Ink";
}

when i use it in a datalist like so:

<RadzenListBox 
    TValue="INameable"
    Data="Data"
    @bind-Value=newModifier.Nameable
    Multiple="false"
    AllowFiltering="true"
    FilterAsYouType="true"
    FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive"
    FilterOperator="StringFilterOperator.Contains"
    TextProperty="ObjectAndName"
    Style="width:100%; height:477px"
/>

I get the following displayed:
image

if i use the name property as the textProperty i get this display result:
image

if i use the objectName property as the text property, i get this display:
image

I know it is the ToString method being called as I have other classes in this filtered list which display the return of their ToString overriden method.

both the properties ObjectName and Name are defined per class. Why is the default interface implementation returning the class's ToString method?

The type used to access properties is determined using AsQueryable().ElementType of what is assigned as Data.

Okay, so how would I get the default interface implementation? I'm passing INameable as the TValue parameter? I've tried to recreate the error in fiddler but can't seem to do so. I'm not sure how radzen isn't returned the expected default implementation value:

This is not related, check again my previous reply - only what’s assigned to Data matters and I already posted how the type is retrieved.

just made an edit, trying to understand. I made a fiddle using AsQueryable and not getting the same result that Radzen produces.

The entire source code of our components is available at your premises - you can debug the code I’ve already mentioned to check how the type and properties are retrieved.

Alright so I solved my immediate issue by forcing my desired result with a template.

<RadzenListBox
    TValue="INameable"
    Data="Data"
    @bind-Value=newModifier.Nameable
    Multiple="false"
    AllowFiltering="true"
    FilterAsYouType="true"
    FilterCaseSensitivity="FilterCaseSensitivity.CaseInsensitive"
    FilterOperator="StringFilterOperator.Contains"
    Style="width:100%; height:477px">

    <Template>
        @((context as INameable).ObjectAndName)
    </Template>

</RadzenListBox>