Как связать и получить слово resx (локализация) - PullRequest
0 голосов
/ 28 апреля 2020

Я следовал этой статье: https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/localization/text?pivots=macos

Я хочу связать и получить значение моего .resx

 Title="{x:Static resx:AppResources.Binding Title}">

их значение заголовка равно Road, Fly, Run из моей ViewModel

<data name="Road" xml:space="preserve">
        <value>Camino</value>
    </data>

1 Ответ

0 голосов
/ 29 апреля 2020

Я проверил это на локальном сайте, следуя инструкциям, и он работает.

Создание AppResources.resx файла:

  <data name="Fly" xml:space="preserve">
    <value>DefaultFlyRoute</value>
  </data>
  <data name="Road" xml:space="preserve">
    <value>DefaultRoad</value>
  </data>
  <data name="Run" xml:space="preserve">
    <value>DefaultRunRoute</value>
  </data>

В ViewModel класс для загрузки .resx данных в качестве значения по умолчанию при инициализации.

public class ViewModel
{
    public string Road { get; set; }
    public string Fly { get; set; }
    public string Run { get; set; }


    public ViewModel()
    {
        Road = AppResources.Road;
        Fly = AppResources.Fly;
        Run = AppResources.Run;
    }
}

Код Xaml , как указано ниже, для привязки значения из ViewModel:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:local="clr-namespace:AppResxFile"
             mc:Ignorable="d"
             x:Class="AppResxFile.MainPage">

    <ContentPage.BindingContext>
        <local:ViewModel />
    </ContentPage.BindingContext>
    <StackLayout>
        <!-- Place new controls here -->
        <Label Text="Welcome to Xamarin.Forms!" 
           HorizontalOptions="Center"
           VerticalOptions="CenterAndExpand" />
        <Label Text="{Binding Road}" 
           HorizontalOptions="Center"
           VerticalOptions="CenterAndExpand" />
        <Label Text="{Binding Fly}" 
           HorizontalOptions="Center"
           VerticalOptions="CenterAndExpand" />
        <Label Text="{Binding Run}" 
           HorizontalOptions="Center"
           VerticalOptions="CenterAndExpand" />

    </StackLayout>

</ContentPage>

Окончательный эффект следующим образом:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...