ListView не отображает данные в xamarin - PullRequest
0 голосов
/ 12 сентября 2018

Я новичок в xamarin и пытаюсь отобразить список. Моя попытка заключается в следующем.

<ContentPage.Content>
    <StackLayout>
        <ListView x:Name="ComListView" RowHeight="80">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <ViewCell.View>
                            <Grid Margin="8">
                                <Label Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Grid.ColumnSpan="2" Text="hello world" FontAttributes="Bold"  />
                            </Grid>
                        </ViewCell.View>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>
</ContentPage.Content>

Но когда я запускаю приложение, даже я перехожу к правильной странице; ничего не отображать. Для любых других представлений будет отображаться правильный вывод. Так где же я могу ошибиться при просмотре списка?

Ответы [ 2 ]

0 голосов
/ 12 сентября 2018

Вы не привязываете данные к просмотру списка. используйте свойство ItemSource для привязки данных из xaml, кода или используйте привязку для заполнения из вашей ViewModel

0 голосов
/ 12 сентября 2018

Вы должны положить предметы на ListView. В настоящее время вы указываете только ItemTemplate, который определяет, как будет выглядеть элемент (в вашем случае все они будут выглядеть одинаково (т. Е. Надписи с текстом «hello world»)). Но ListView пусто, поэтому нет объектов для показа.

Вы можете устанавливать элементы, используя свойство ItemsSource ListView.

Обычно вы используете Binding внутри ItemTemplate для отображения содержимого элемента.

Допустим, у нас есть класс Person:

class Person
{
    public string Name { get; set; }
}

Затем вы создаете List из Person объектов и добавляете его к вашему ListView в коде:

var personnel = new List<Person>
{
    new Person { Name = "Booker" },
    new Person { Name = "Elizabeth" }
};

ComListView.ItemsSource = personnel;

И в вашем XAML вы должны установить ItemTemplate так, чтобы он показывал Name каждого Person:

<Label Text="{Binding Name, Mode=OneWay}" />

Примечание. Вы также можете привязать ItemsSource из XAML, если у вас есть ViewModel.

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