Изменение цвета ListView дает странный текст в верхней части списка Xamarin - PullRequest
0 голосов
/ 22 мая 2018

У меня есть список из двух имен, помещенных в код позади, которые связаны с ListView в файле xaml, и после попытки изменить цвета имени на белый, я получил это на экране:

Снимок экрана со списком

код: XAML

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="RoseySports.Invite_Page">
    <ContentPage.Content>
        <AbsoluteLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">

            <Image AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0, 0, 1, 1"
               Source="background.jpg" Aspect="AspectFill"/>

                <ScrollView AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0, 0, 1, 1">

                <ContentView Padding="10, 40, 10, 10">

                <ListView x:Name="inviteesp" SeparatorColor="White" BackgroundColor="Transparent" Header="People">
                        <ListView.ItemTemplate>
                            <DataTemplate>

                                <TextCell Text="{Binding names}" TextColor="White"/>

                            </DataTemplate>
                        </ListView.ItemTemplate>
                    </ListView>
                </ContentView>
            </ScrollView>
        </AbsoluteLayout>
    </ContentPage.Content>
</ContentPage>

C # (код сзади):

using System;
using System.Collections.Generic;

using Xamarin.Forms;

namespace RoseySports
{
    public partial class Invite_Page : ContentPage
    {
        public Invite_Page()
        {
            InitializeComponent();

            var names = new List<String>

            {

                "Mohamed Al-Sabbagh",
                "Adrien Tardy"

            };

            inviteesp.ItemsSource = names;
        }
    }
}

После добавленияисточник привязки к свойству ListView

Ответы [ 3 ]

0 голосов
/ 22 мая 2018

Ваши ListView ItemsSource должны быть связаны с names, а внутри шаблона просто используйте {Binding}, чтобы указать на элемент вместо свойства этого элемента.

<ListView x:Name="inviteesp" SeparatorColor="White" BackgroundColor="Transparent" Header="People" ItemsSource="{Binding names}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text="{Binding}" TextColor="White"/>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

В настоящее время вы пытаетесь привязать каждый символ к каждому TextCell вместо того, чтобы пытаться привязать каждую строку к каждому TextCell.

0 голосов
/ 23 мая 2018

Поскольку вы используете Header, который не показан, но этот странный текст, я предполагаю, что проблема связана с этим.Вы уверены, что имеете все пакеты NuGet и используете правильную версию NetStandard?Вам, вероятно, следует проверить версии таргетинга, очистить, восстановить и перестроить решение.

Если это не поможет, попробуйте добавить явный макет для вашего заголовка, например

<ListView x:Name="listView" Header="TEST HEADER"> <!-- this object will be the bindingcontext -->
  <ListView.HeaderTemplate >
    <DataTemplate>
      <StackLayout Orientation="Horizontal">
        <Label Text="{Binding .}"/> <!-- use the object in Header as the binding source -->
      </StackLayout>
    </DataTemplate>
  </ListView.HeaderTemplate>
  <ListView.ItemTemplate>
    your template goes here

, также ознакомьтесь сэта ветка форумов xamarin https://forums.xamarin.com/discussion/126386/setvalue-can-not-convert-system-readonlyspan-to-type-xamarin-forms-color

Возможно, попробуйте обновить до Xamarin Forms 3, если вы этого еще не сделали.Проверьте, есть ли ссылки на старые версии Xamarin Forms в файлах ваших проектов (android, ios, ...).

0 голосов
/ 22 мая 2018

Вы уверены, что это правильно?

{Binding names}

Попробуйте с

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