firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.

Динамическая смена языка в Xamarin Shell, как сделать?

Все приложение локализовано с помощью ресурсов. Однако элементы оболочки при смене языка не локализуются.
В общем то проблему эту я решил просто делюсь изысканиями.
  • Вопрос задан
  • 121 просмотр
Решения вопроса 1
firedragon
@firedragon Автор вопроса
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Итак что вышло: Ключевой момент это Title="{Binding AppShellSettings, Mode=OneWay}"

В данном случае разработчики по причине скорости использовали биндинг OneTime, после изменения режима биндинга можно динамически менять текст. Соответственно когда вы меняете ViewModel переключение происходит как задумано.

<Shell xmlns="http://xamarin.com/schemas/2014/forms"
       xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
       xmlns:views="clr-namespace:SpecialForcesDirectory.Views;assembly=SpecialForcesDirectory"
       xmlns:code="clr-namespace:SpecialForcesDirectory.Code;assembly=SpecialForcesDirectory"
       x:Class="SpecialForcesDirectory.Page1" >
    <FlyoutItem Title="Main" FlyoutDisplayOptions="AsMultipleItems" Route="main">
        <Tab Title="{Binding AppShellMain,Mode=OneWay }" Icon="outline_home_white_48.png">
            <ShellContent Title="{Binding AppShellMain, Mode=OneWay }" Icon="outline_home_white_48.png" Route="quota" ContentTemplate="{DataTemplate views:QuotaPage}"/>
        </Tab>
        <Tab Title="{Binding AppShellNotes , Mode=OneWay}" Icon="outline_bookmarks_white_48.png">
            <ShellContent Title="{Binding AppShellNotes , Mode=OneWay}" Icon="outline_bookmarks_white_48.png" Route="notes" ContentTemplate="{DataTemplate views:NotesPage}"/>
        </Tab>
    </FlyoutItem>
    <ShellContent Title="{Binding AppShellInfo, Mode=OneWay}" StyleId="NONE" Route="about" Icon="outline_error_outline_white_24.png" ContentTemplate="{DataTemplate views:AboutPage}"/>
    <ShellContent Title="{Binding AppShellSettings, Mode=OneWay}" Icon="outline_settings_white_48.png" StyleId="NONE" Route="settings" ContentTemplate="{DataTemplate settings:SettingPage}"/>
</Shell>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы