Xamarin窗体中缺少默认构造函数错误



我很难弄清楚如何解决这个错误。它在MainPage.xaml文件中显示"缺少默认构造函数"。我将非常感谢您的帮助!

MainPage.xaml:包含导航菜单。

<?xml version="1.0" encoding="utf-8"?>
<TabbedPage
xmlns:tasks="clr-namespace:TaskApp.Tasks"
xmlns:notifications="clr-namespace:TaskApp.Notifications"
xmlns:account="clr-namespace:TaskApp.Account"
xmlns="http://xamarin.com/schemas/2014/forms" 
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
xmlns:d="http://xamarin.com/schemas/2014/forms/design" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" x:Class="TaskApp.MainPage">
<NavigationPage Title="Tasks" Icon="tasks.png">
<x:Arguments>
<tasks:TaskList /> // <-- THIS IS WHERE THE ERROR OCCURS
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Notifications" Icon="notification.png">
<x:Arguments>
<notifications:NotificationList />
</x:Arguments>
</NavigationPage>
<NavigationPage Title="Account" Icon="account.png">
<x:Arguments>
<account:AccountPage />
</x:Arguments>
</NavigationPage>
</TabbedPage>

TaskList.xaml.cs:是显示任务列表的代码隐藏文件

namespace TaskApp.Tasks
{
public partial class TaskList : ContentPage
{
public TaskList(string queue)
{
InitializeComponent();
if (queue != null)
queueSlug = queue;
NavigationPage.SetBackButtonTitle(this, "Back");
}
//Overrides the back button on Android and Window devices
protected override bool OnBackButtonPressed()
{
return true;
}
}
}

TaskQueues.xaml.cs:是一个代码结束文件,它包含一个弹出窗口,用于选择特定的任务队列,如"未完成的任务、已完成的任务和过期的任务等",并将数据传递给TaskList.xaml.cs

namespace TaskApp.Popups
{
public partial class TaskQueues : PopupPage
{
private const string Url = "...";
private HttpClient _client = new HttpClient();
private ObservableCollection<Queues> _queues;
void Handle_SelectedQueue(object sender, Xamarin.Forms.SelectedItemChangedEventArgs e)
{
var queue = e.SelectedItem as Queues;
PopupNavigation.Instance.PopAsync(true);
new NavigationPage(new TaskList(queue.Slug));
}
public TaskQueues()
{
InitializeComponent();
}
protected override async void OnAppearing()
{
var content = await _client.GetStringAsync(Url);
var queues = JsonConvert.DeserializeObject<List<Queues>>(content);
_queues = new ObservableCollection<Queues>(queues);
taskQueues.ItemsSource = _queues;
// Adjusts the list height and scrollview height
int i = _queues.Count;
int heightRowList = 50;
i = (i * heightRowList);
taskQueues.HeightRequest = i;
if (i > 400)
taskQueuesScrollView.HeightRequest = 400;
base.OnAppearing();
}
private void ClosePopup(object sender, EventArgs e)
{
PopupNavigation.Instance.PopAsync(true);
}
}
}

TaskList需要在XAML 中使用默认(无参数(构造函数

public partial class TaskList : ContentPage
{
public TaskList()
{
InitializeComponent();
NavigationPage.SetBackButtonTitle(this, "Back");
}
public TaskList(string queue)
{
InitializeComponent();
if (queue != null)
queueSlug = queue;
NavigationPage.SetBackButtonTitle(this, "Back");
}

相关内容

最新更新