I am trying to implement a localization so when the language is changed by the user, everything changes in runtime.
I have the next class LocalizedResources:
public class LocalizedResources : INotifyPropertyChanged
{
    const string DEFAULT_LANGUAGE = "";
    readonly ResourceManager ResourceManager;
    CultureInfo CurrentCultureInfo;
    public string this[string key]
    {
        get => ResourceManager.GetString(key, CurrentCultureInfo);
    }
    public LocalizedResources(Type resource, string language = null)
        : this(resource, new CultureInfo(language ?? DEFAULT_LANGUAGE))
    { }
    public LocalizedResources(Type resource, CultureInfo cultureInfo)
    {
        CurrentCultureInfo = cultureInfo;
        ResourceManager = new ResourceManager(resource);
        MessagingCenter.Subscribe<object, CultureChangedMessage>(this,
            String.Empty, OnCultureChanged);
    }
    public event PropertyChangedEventHandler PropertyChanged;
    private void OnCultureChanged(object s, CultureChangedMessage ccm)
    {
        CurrentCultureInfo = ccm.NewCultureInfo;
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Item"));
    }
    public string CurrentCulture() => CurrentCultureInfo.Name;
    public CultureInfo CurrentCultureI() => CurrentCultureInfo;
}
When I use it directly in a view binding (like {Binding Resources[key]}, an example of it is below), it works wonders, but I have few cases when I have to create another property in another model using this class. An example:
public class MediaViewModel : BaseViewModel
{
    public CultureInfo localization;
    public int localizationFirstDay;
    
    public MediaViewModel()
    {
        localization = Resources.CurrentCultureI();
        localizationFirstDay = (int)Resources.CurrentCultureI().DateTimeFormat.FirstDayOfWeek;
    }
}
Here I save Resources.CurrentCultureI(); in localization to use it in its view:
                    <StackLayout Padding="5, 10, 5, 10">
                    <calendar:SfCalendar x:Name="calendar" 
                                         ViewMode="MonthView" 
                                         YearViewMode="Month" 
                                         Margin="10, 5, 10, 5"
                                         NavigationDirection="Vertical"
                                         ShowInlineEvents="True"
                                         InlineViewMode="Agenda"
                                         VerticalOptions="FillAndExpand"
                                         Locale="{Binding localization}"
                                         FirstDayofWeek="{Binding Resources[LocalizationFirstDay]}">
                        <calendar:SfCalendar.MonthViewSettings>
                            <calendar:MonthViewSettings>
                                <calendar:MonthViewSettings.InlineItemTemplate>
                                    <DataTemplate>
                                        <Button AutomationId="{Binding AutomationId}" 
                                                Text="Texto" TextColor="#bbd5ed"/>
                                    </DataTemplate>
                                </calendar:MonthViewSettings.InlineItemTemplate>
                            </calendar:MonthViewSettings>
                        </calendar:SfCalendar.MonthViewSettings>
                    </calendar:SfCalendar>
                </StackLayout>
FirstDayofWeek="{Binding Resources[LocalizationFirstDay]}" works fine, but Locale="{Binding localization}" does not.
How can I solve it?