![](/img/trans.png)
[英]How to save DropdownButtonFormField value to Firebase real-time database?
[英]Get the value of custom Datepicker and save it to firebase database
我的问题是我想将日期选择器的值插入到 firebase,但我不知道该怎么做。
我已经制作了一个自定义日期选择器,但它的用途是制作占位符“出生日期”这是我的 xaml;
<frame //some property here>
<stacklayout //some property here>
<frame //some property here>
<image //some property here/>
<grid>
<local:BirthdayDatePickerControl x:Name="entryField_DateOfBirth" >
</local:BirthdayDatePickerControl >
</grid>
</frame>
</stacklayout>
</frame>
这是我的代码(Myproj):Datepickerctrl.cs
public class DatePickerCtrl:DatePicker
{
public static readonly BindableProperty EnterTextProperty = BindableProperty.Create(propertyName: "Placeholder", returnType: typeof(string), declaringType: typeof(DatePickerCtrl), defaultValue: default(string));
public string Placeholder { get; set; }
}
此文件或代码也保存到 (Myproj) BirthdayDatePickerControl.cs:
public class BirthdayDatePickerControl : DatePicker
{
public static readonly BindableProperty EnterTextProperty = BindableProperty.Create(propertyName: "Placeholder", returnType: typeof(string), declaringType: typeof(BirthdayDatePickerControl), defaultValue: default(string));
public string Placeholder { get; set; }
}
这是我的代码(Myproj.android):
[assembly: ExportRenderer(typeof(BirthdayDatePickerControl), typeof(BirthdayDatePickerRenderer))] // this line is outside of my namespace in BirthdayDatePickerRenderer.cs
BirthdayDatePickerRenderer.cs
public class BirthdayDatePickerRenderer : DatePickerRenderer
{
public BirthdayDatePickerRenderer(Context context) : base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.DatePicker> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.Text = "Birth Date";
}
}
}
我预期的 output 仍然是我可以在我的日期选择器 UI 中放置一个占位符,还可以从日期选择器获取该数据并将其与 firebase 相同。
我尝试了一些试验和错误这就是我所做的
async public void signButton_Clicked(System.Object sender, System.EventArgs e)
{
/*
some code here like assigning firstname or lastname and etc.
*/
string dateOfBirth = entryField_DateOfBirth.ToString();
CUSTOMER customer = new CUSTOMER();
customer.CusBirthOfDate = dateOfBirth;
var Savedata = await customerRepo.Save(customer);
}
我认为你已经完成了大部分工作。 只需对 Button Clicked 处理程序做一个小改动:
async public void signButton_Clicked(System.Object sender, System.EventArgs e)
{
...
var date = entryField_DateOfBirth.Date.ToString().Split(" ")[0]; //get the date
...
}
如果要将Datepicker的默认占位符设置为“出生日期”,还是应该使用自定义render,否则xamarin.forms Datepicker无法识别这种字符串。 更多信息,您可以参考Xamarin.Forms DatePicker 。
希望对你有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.