CodeBeam.MudBlazor.Extensions
CodeBeam.MudBlazor.Extensions copied to clipboard
Exception thrown when setting custom Comparer on MudSelectExtended
trafficstars
When attempting to set a custom EqualityComparer on MudSelectExtended, I get the following exception: Unhandled exception rendering component: Unable to set property 'Comparer' on object of type 'MudExtensions.MudSelectExtended`
To reproduce, use the following in the mudExtensions playground:
@* Required *@
<MudThemeProvider />
<MudPopoverProvider />
<MudDialogProvider />
<MudSnackbarProvider />
@* Example *@
<MudSelectExtended
ToStringFunc="person => person.Name"
ItemCollection="_list"
Comparer=_comparer>
</MudSelectExtended>
@code {
private IList<TestPerson> _list = new List<TestPerson>()
{
new TestPerson() { Name = "Test1", ID = 1 },
new TestPerson() { Name = "Test2", ID = 2 }
};
private EqualityComparer<TestPerson> _comparer = EqualityComparer<TestPerson>.Create(
(person, testPerson) => person?.ID == testPerson?.ID,
person => person.ID.GetHashCode());
private class TestPerson
{
public string Name { get; set; }
public int ID { get; set; }
}
}
The cause appears to be from the setter for the Comparer property, where _selectedValues is used for a hashSet, even if it has not yet been initialized.
I think this issue also affect the MudComboBox, though I haven't tested enough to confirm it.