视图中的Xamarin MainPage DatePicker参考

时间:2019-01-15 09:12:43

标签: c# xamarin xamarin.forms

非常简单,我的MainPage中有一个Datepicker,其x:Name为'TheDate',如何在我的ViewPage.xaml.cs中引用它。

MainPage.Xaml代码:

<StackLayout Orientation="Horizontal" HorizontalOptions="StartAndExpand" Padding="10" Margin="0, 20, 0, 20">
     <Label Text="Date" WidthRequest="384" FontSize="24"/>
     <DatePicker x:Name="TheDate" WidthRequest="384" FontSize="24" Margin="0, -10, 0, 0" />
</StackLayout>

AccordionView.Xaml.cs代码:

 public async void SaveButton_Clicked(object sender, EventArgs e)
 { //WANT TO ADD THE THEDATE HERE }

2 个答案:

答案 0 :(得分:0)

您应该只引用日期选择器,然后提取日期(所选值)

 public async void SaveButton_Clicked(object sender, EventArgs e)
 {

     var selectedDate = TheDate.Date;
  }

此方法必须位于xaml中带有DatePicker的页面的代码中

答案 1 :(得分:0)

TL / DR:。不能。

长版:您不应该这样做,但是还有另一种方法:您拥有一个视图(AccordionView),它位于MainPage范围内。尽管在技术上可以在TheDate上添加对AccordionView的引用,但我还是建议不要这样做。这将使AccordionView依赖于其父级的实现细节,这很可能不是一个好主意。

无论如何,您可以进行的操作-如果有意义,则您的AccordionView具有Date-是添加BindableProperty类型的{{ 1}}到您的DateTime

AccordionView

现在,您将可以绑定// Within AccordionView.xaml.cs public static BindableProperty DateProperty = BindableProperty.Create(nameof(Date), typeof(DateTime), typeof(AccordionView), default(DateTime)); public DateTime Date { get => (DateTime)GetValue(DateProperty); set => SetValue(DateProperty, value); } 中的DatePicker中的日期

MainPage.xaml