我是 .Net Maui 的新手,但已經完成了 James Montemagno 的 4 小時研討會。研討會包括:
- 使用 CollectionView 創建頁面
- 創建視圖模型
- 創建呼叫資料服務以檢索資料的異步方法
- 將異步方法配置為 ICommand
- 將資料模型串列系結到 CollectionView
- 將命令系結到按鈕
單擊該按鈕可以作業并填充 CollectionView。當頁面打開時,我將如何洗掉按鈕并執行此操作?注意我嘗試通過洗掉不起作用的“[ICommand]”來修改方法。另外,這個動作應該在后面的代碼中還是在 ViewModel 中完成?
提前感謝您的幫助!
(模型視圖)
public partial class FieldAssignedWbsViewModel : BaseViewModel
{
FieldAssignedWbsService fieldAssignedWbsService;
public ObservableCollection<FieldAssignedWbs> WbsList { get; set; } = new();
public FieldAssignedWbsViewModel(FieldAssignedWbsService fieldAssignedWbsService)
{
Title = "Wbs Assigned";
this.fieldAssignedWbsService = fieldAssignedWbsService;
}
[ICommand]
async Task GetFieldAssignedWbsListAsync()
{
if (IsBusy)
return;
try
{
IsBusy = true;
var wbsList = await fieldAssignedWbsService.GetFieldAssignedWbsList();
if (WbsList.Count != 0)
WbsList.Clear();
foreach (var wbs in wbsList)
WbsList.Add(wbs);
}
catch (Exception ex)
{
Debug.WriteLine(ex);
await Shell.Current.DisplayAlert("Error!",
$"Undable to get monkeys: {ex.Message}", "OK");
}
finally
{
IsBusy = false;
}
}
}
(CollectionView 系結)
<CollectionView BackgroundColor="Transparent"
ItemsSource="{Binding WbsList}"
SelectionMode="None">
(對命令方法的呼叫不正確的頁面代碼)
public partial class FieldAssignedWbsPage : ContentPage
{
public FieldAssignedWbsPage(FieldAssignedWbsViewModel viewModel)
{
InitializeComponent();
BindingContext = viewModel;
//The following call does not work
//Hover message: Non-invocable member... cannot be called like a method
await viewModel.GetFieldAssignedWbsListCommand();
}
}
uj5u.com熱心網友回復:
使用OnAppearing. 您可能還需要GetFieldAssignedWbsList 公開
protected override async void OnAppearing()
{
await viewModel.GetFieldAssignedWbsListCommand.Execute(null);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/492870.html
標籤:xml xamarin.forms 毛伊岛
下一篇:按鈕上的C#WPF影像被切斷
