簡體   English   中英

Xamarin窗體Listview項目不顯示

[英]Xamarin Forms Listview Items Not Displaying

我的Xamarin Forms應用程序中有一個已綁定到數據的列表。 所有這些都有效,我知道我正在獲取數據,因為如果我點擊屏幕上的列表會顯示數據,但是我認為列表應該顯示每個項目,而無需點擊屏幕。

這是我的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="PDInstall.Views.LayoutsPage"
             Title="Layouts">
    <ContentPage.Content>
        <StackLayout>
            <ListView x:Name="layoutsList" IsPullToRefreshEnabled="True"
                      Refreshing="layoutsList_Refreshing" ItemTapped="layoutsList_ItemTappedAsync">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <TextCell Text="{Binding Name}" />
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

這是我的代碼背后:

public LayoutsPage (Job job)
{
    InitializeComponent ();

    _job = job;

    Task.Run(() => GetLayoutsListAsync());
}

private async Task GetLayoutsListAsync()
{
    if(CrossConnectivity.Current.IsConnected)
    {
        layoutsList.IsRefreshing = true;

        IList<CloudBlockBlob> layouts = await azureFileUpload.ListJobBlobsAsync(_job.JobId);

        IList<CloudEditableBlob> layoutList = new List<CloudEditableBlob>();

        foreach(var item in layouts)
        {
            CloudEditableBlob editableBlob = new CloudEditableBlob();

            editableBlob.Name = item.Name.Replace(_job.JobId.ToString() + ": ", "");

            editableBlob.Container = item.Container;

            editableBlob.Parent = item.Parent;

            editableBlob.StorageUri = item.StorageUri;

            editableBlob.Uri = item.Uri;

            layoutList.Add(editableBlob);
        }

        layoutsList.IsRefreshing = false;

        await Task.Run(() => layoutsList.ItemsSource = layoutList);

    }
    else
    {
        await DisplayAlert("No Internet Connection", "Please Reconnect to the Internet and re-open PDInstall", "OK");
    }

    layoutsList.EndRefresh();
}

我正在從azure獲取blob列表,它們只是我們存儲的PDF。 我得到了Blob列表,然后必須將其放入自定義類中,以便可以更改名稱,然后將其放入列表中。 所有這些都可以正常工作,直到嘗試顯示該列表,然后我得到一個空白頁,直到點擊它然后顯示列表。

有人知道我是否可以以編程方式執行水龍頭或其他操作以顯示該列表嗎? 或者可能是無需點擊屏幕即可獲取數據顯示的另一種方法?

提前致謝!

更換

await Task.Run(() => layoutsList.ItemsSource = layoutList);

Device.BeginInvokeOnMainThread(() =>{ layoutsList.ItemsSource = layoutList; });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM