CollectionView - данные привязки не работают

Я тренируюсь в своем первом приложении MAUI, однако у меня проблемы с просмотром данных. При отладке я вижу, что список не пустой, есть данные, а также я передаю данные списка в ItemSource. В чем может быть проблема?

Мой код на onAppearing():

    protected override async void OnAppearing()
    {
        base.OnAppearing();
        ApiService service = new ApiService();
        var newsResult = await service.GetNews();

        foreach(var item in newsResult.Articles)
        {
            ArticleList.Add(item);
        }

        CvNews.ItemsSource= ArticleList;

    }

Xaml:

        <CollectionView Grid.Row = "2" x:Name = "CvNews">
            <CollectionView.ItemsLayout>
                <LinearItemsLayout Orientation = "Vertical" ItemSpacing = "15"/>
            </CollectionView.ItemsLayout>
            <CollectionView.ItemTemplate>
                <DataTemplate>
                    <StackLayout Padding = "10">
                        <Image HeightRequest = "200" Source = "{Binding Image}"/>
                        <Label FontSize = "Medium" Text = "{Binding Title}"/>
                    </StackLayout>
                </DataTemplate>
            </CollectionView.ItemTemplate>
        </CollectionView>

В источник изображения я добавляю изображение по умолчанию из ресурсов, и изображение отображается

Статья:

public class Article
    {
        [JsonProperty("title")]
        public string Title;

        [JsonProperty("description")]
        public string Description;

        [JsonProperty("content")]
        public string Content;

        [JsonProperty("url")]
        public string Url;

        [JsonProperty("image")]
        public string Image;

        [JsonProperty("publishedAt")]
        public DateTime PublishedAt;

        [JsonProperty("source")]
        public Source Source;
    }

    public class Root
    {
        [JsonProperty("totalArticles")]
        public int TotalArticles;

        [JsonProperty("articles")]
        public List<Article> Articles;
    }

    public class Source
    {
        [JsonProperty("name")]
        public string Name;

        [JsonProperty("url")]
        public string Url;
    }

Пожалуйста, напишите код для Article

Jason 20.11.2022 16:47

Вы можете привязываться только к общедоступным свойствам. Ни один из элементов в Article не является C# свойствами

Jason 20.11.2022 17:10

Переместите код из метода OnAppearing() в код программной части, а затем проверьте.

Paramjit 20.11.2022 17:32
Как настроить Tailwind CSS с React.js и Next.js?
Как настроить Tailwind CSS с React.js и Next.js?
Tailwind CSS - единственный фреймворк, который, как я убедился, масштабируется в больших командах. Он легко настраивается, адаптируется к любому...
LeetCode запись решения 2536. Увеличение подматриц на единицу
LeetCode запись решения 2536. Увеличение подматриц на единицу
Увеличение подматриц на единицу - LeetCode
Переключение светлых/темных тем
Переключение светлых/темных тем
В Microsoft Training - Guided Project - Build a simple website with web pages, CSS files and JavaScript files, мы объясняем, как CSS можно...
Отношения &quot;многие ко многим&quot; в Laravel с методами присоединения и отсоединения
Отношения &quot;многие ко многим&quot; в Laravel с методами присоединения и отсоединения
Отношения "многие ко многим" в Laravel могут быть немного сложными, но с помощью Eloquent ORM и его моделей мы можем сделать это с легкостью. В этой...
В PHP
В PHP
В большой кодовой базе с множеством различных компонентов классы, функции и константы могут иметь одинаковые имена. Это может привести к путанице и...
Карта дорог Беладжар PHP Laravel
Карта дорог Беладжар PHP Laravel
Laravel - это PHP-фреймворк, разработанный для облегчения разработки веб-приложений. Laravel предоставляет различные функции, упрощающие разработку...
2
3
109
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

<Image HeightRequest = "200" Source = "{Binding Image}"/>
<Label FontSize = "Medium" Text = "{Binding Title}"/>

Ни Image, ни Title не являются общедоступными свойствами

public string Title;
    

Сделать его собственностью

public string Title { get; set; }

Другие вопросы по теме