簡體   English   中英

MAUI:API 響應未顯示在 CollectionView 中

[英]MAUI: API response not displaying in CollectionView

我正在使用 RestSharp 從 API 獲得響應。並且工作正常。 但是在我嘗試將這些響應發送到 model 並使用 CommunityToolkit.MVVM 將其與CollectionView綁定后,它沒有顯示數據。

XAML檔案

    <CollectionView.ItemTemplate>
        <DataTemplate x:DataType="models:NewAppliedLeave">
       
        </DataTemplate>
    </CollectionView.ItemTemplate>
            
</CollectionView>

ViewModel.cs

[ObservableProperty]
ObservableCollection<NewAppliedLeave> _LHItems;

public async Task<ObservableCollection<NewAppliedLeave>> GetAppliedLeave()
{
    RestResponse response = await client.PostAsync(request);
    var responseContent = response.Content.ToString();

    Debug.WriteLine(responseContent);

    List<NewAppliedLeave> leaveItem = JsonConvert.DeserializeObject<List<NewAppliedLeave>>(responseContent);

    LHItems = new ObservableCollection<NewAppliedLeave>(leaveItem);
              
    return LHItems;              
}

我期待在CollectionView中顯示響應內容。

首先,請在調試時添加一個斷點,以檢查LHItems是否具有正確的值。

然后請確保您已將 CollectionView.ItemSource 綁定到LHItems或頁面構造方法中的 LHItems。

最后,我沒有看到<DataTemplate>中有任何控件。 您是否在其中添加了一些控件(例如LabelImage )以顯示名為 NewAppliedLeave 的 model 中的屬性並使其繼承自ObservableObject

對於視圖模型中的ObservableCollection<NewAppliedLeave>屬性,您無需添加[ObservableProperty]

.net maui 中的CommunityToolkit.mvvm 和CollectionView 的使用可以參考這個案例。

使用 [ObservableProperty] 時,MVVM 工具包將為您生成代碼,但聲明應為小寫且不帶下划線。

更新:經過一些測試,前導下划線沒有造成任何問題。

[ObservableProperty]
ObservableCollection<NewAppliedLeave> lHItems;

以上將自動生成以下代碼:

 public NewAppliedLeave LHItems
    {
        get => lHItems;
        set => SetProperty(ref lHItems, value);
    }

  

然后你可以使用下面的代碼來填充列表。


LHItems = new ObservableCollection<NewAppliedLeave>(leaveItem);
          

暫無
暫無

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

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