我正在使用带有5个不同模板的ListView的Xamarin.Forms应用程序。我试图基于传递给构造函数的“模式”(int参数)设置模板的种类。运行程序时,出现错误
缺少“ CampaignCellSelector”的默认构造函数
我的问题是:是否可以将参数传递给DataTempalteSelectors?如果没有,我应该采取什么方法?我已经在下面发布了我的代码。
public class CampaignCellSelector : DataTemplateSelector
{
public DataTemplate CampaignTemplate { get; set; }
public DataTemplate CrowdfundTemplate { get; set; }
public DataTemplate PendingTemplate { get; set; }
public DataTemplate NoCampaignTemplate { get; set; }
public DataTemplate WelcomeTemplate { get; set; }
public int status { get; set; }
public CampaignCellSelector(int mode)
{
status = mode;
}
protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
{
if (status == 0)
{
return PendingTemplate;
}
else if (status == 1)
{
return NoCampaignTemplate;
}
else if (status == 2)
{
return WelcomeTemplate;
}
else
{
if (((Campaign)item).startDate == "")
{
//Console.WriteLine("point AA");
return CampaignTemplate;
}
else
{
//Console.WriteLine("point BB");
return CrowdfundTemplate;
}
}
}
}
答案 0 :(得分:1)
我认为您不需要定义一个包含参数的构造函数。您只需在创建列表视图时设置 status 的值即可。
例如
web: gunicorn main:ic