Я работаю над приложением Xamarin.Forms с ListView с 5 различными шаблонами. Я пытаюсь установить тип шаблона на основе «mode» (параметр 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;
}
}
}
}