Xamarin本地化和绑定错误

时间:2017-10-15 18:33:23

标签: c# localization xamarin.forms xamarin.android

我的翻译绑定文本有问题。我怎么能这样做绑定项目工作正常?我尝试过改变序列,但仍然没有,我现在也不知道。下面是我的列表代码,它是XAML的一部分,我可以绑定和翻译单词

此代码可以正常工作:

<Grid RowSpacing="10" Padding="30" VerticalOptions="Center" >

    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>

        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>

        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>

    <Button  Grid.Row="2"  Text="{resource:TranslateExtension Szukaj}"
                BorderRadius="30"
                BackgroundColor="#80FFFFFF"

                FontSize="18"
                TextColor="#ffe2fb"
                BorderWidth="4"
                BorderColor="#ffe2fb"
                Clicked="Button_Clicked_1"/>

    <Button  Grid.Row="3"  Text="{resource:TranslateExtension Mapa}"
                BorderRadius="30"
                BackgroundColor="#80FFFFFF"
                FontSize="18"
                TextColor="#ffe2fb"                    
                BorderWidth="4"
                BorderColor="#ffe2fb"
                Clicked="Button_Clicked"/> 
</Grid>

但是这段代码不是:

<RelativeLayout>
    <ListView x:Name="ListaNazw" SeparatorColor="#3d122c" HasUnevenRows="True"
              RelativeLayout.HeightConstraint="{ConstraintExpression Property=Height,Factor=1,Type=RelativeToParent}"
              RelativeLayout.WidthConstraint="{ConstraintExpression Property=Width,Factor=1,Type=RelativeToParent}"  ItemSelected="ListaNazw_ItemSelected" >
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>
                    <StackLayout Orientation="Horizontal"  Padding="5" BackgroundColor="#50FFFFFF">
                        <StackLayout HorizontalOptions="StartAndExpand">
                            <Label Text="{resource:TranslateExtension {Binding nazwa}}" TextColor="#fff2f2" FontSize="17"/>
                            <Label Text="{resource:TranslateExtension {Binding opis}}" TextColor="#ffe5e5" />
                        </StackLayout>
                    </StackLayout>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</RelativeLayout>

列表

Task.Factory.StartNew(() =>
            {
                ListaNazw.ItemsSource = new List<Listyy>
          {

              new Listyy { nazwa = "Pierwsze Spotkanie", opis="Niech to spotkanie będzie udane" , ema = 1 },
              new Listyy { nazwa = "Spotkanie Biznesowe", opis = "Zaimponuj swojemu partnerowi", ema = 2 },
              new Listyy { nazwa = "Spotkanie Towarzyskie", opis = "Make your day", ema = 3 },
              new Listyy { nazwa = "Pierwsza Randka", opis = "Oczaruj swoją drugą połówkę", ema = 4 },
              new Listyy { nazwa = "Pierwszy Raz", opis = "Zapewne to będzie wyjątkowe", ema = 5 },
              new Listyy { nazwa = "Spotkanie", opis = "Luźna rozmowa przy kawie", ema = 6 },
              new Listyy { nazwa = "Rozrywka", opis = "Czas na chwilę szaleństwa", ema = 7 },
              new Listyy { nazwa = "Impreza", opis = "Ubierz coś ładnego, my zajmiemy się resztą", ema = 8 },
              new Listyy { nazwa = "Spacer", opis = "Park, molo? Pozwól sobie pomóc", ema = 9 },
              new Listyy { nazwa = "Odpoczynek", opis = "Chwila relaksu z pewnością Ci nie zaszkodzi", ema = 10 },
              new Listyy { nazwa = "Urodziny", opis = "Zrób niespodziankę swoim bliskim", ema = 11 },
              new Listyy { nazwa = "Czas wolny", opis = "Znajdziemy Ci idealne miejsce", ema = 12 },

          };
            });
        });

1 个答案:

答案 0 :(得分:0)

我没有看到您将ItemSource设置为ListView的代码和ListView的数据模型,与数据和视图之间直接绑定绑定不同,项目的绑定已克隆对于ListView中的每个项目,已在模板上设置的数据绑定将传输到各个克隆。

我认为您可以将其视为每个项目的绑定模型。您可以参考Bindings and CollectionsListView中实施数据绑定。