.NET MAUI в реальном времени обнаруживает текущую информацию о культуре. Изменена?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 .NET MAUI в реальном времени обнаруживает текущую информацию о культуре. Изменена?

Сообщение Anonymous »

Я следил за уроком в этом видео Геральта на YouTube о многоязычности в .NET MAUI, очень хорошо и очень подробно:
После того, как я много раз гуглил результатов StackOverFlow, я не смог найти для себя ответа.
У меня есть такой MVVM-класс:

Код: Выделить всё

namespace MyNameProject.Models
{
[ContentProperty(nameof(Name))]
public partial class ResourceModels : ObservableObject, IMarkupExtension
{
private ResourceModels() => Language.Culture = CultureInfo.CurrentCulture;
private static ResourceModels obj;
internal static ResourceModels Obj { get { if (obj == null) obj = new(); return obj; } set => obj = value; }
public object this[string resourceKey]
=> Language.ResourceManager.GetObject(resourceKey, Language.Culture) ?? Array.Empty();
public void setCulture(CultureInfo culture) => Language.Culture = culture;
}
}
Чтобы иметь возможность обнаруживать изменения CultureInfo. На каждой странице XAML мне приходится писать и вызывать событие следующим образом:
В конструкторе PAGE я пишу:

Код: Выделить всё

ResourceModels.Obj.PropertyChanged += Obj_PropertyChanged;
И этот метод для этого:

Код: Выделить всё

private void Obj_PropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e)
{
ResourceModels.Obj.setCulture(CultureInfo.CurrentCulture);
}
Работа с проектом со многими СТРАНИЦАМИ действительно затруднительна, и я работаю не только над одним проектом.., пожалуйста, покажите мне, как сделать это в глобальном реальном времени один раз и для всех. И это будет жить вечно с момента открытия приложения до выхода из него.

Подробнее здесь: https://stackoverflow.com/questions/786 ... fo-changed
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»