[英]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>
中有任何控件。 您是否在其中添加了一些控件(例如Label
或Image
)以顯示名為 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.