首页 > 解决方案 > 视图中的 Xamarin MainPage DatePicker 参考

问题描述

非常简单,我的 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 }

标签: c#xamarinxamarin.forms

解决方案


TL/DR:你不能。

长版:您不应该这样做,但还有另一种方式:您有一个视图 ( AccordionView),它位于您的MainPage. 虽然在技术上可能可以添加对 的引用,TheDateAccordionView我认为不要这样做。这将AccordionView取决于其父级的实现细节,这很可能是一个坏主意。

无论如何,你能做的——如果有意义的话,你AccordionView有一个Date- 就是在你BindablePropertyDateTimeAccordionView

// 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

<controls:AccordionView Date="{Binding Source={x:Reference TheDate}, Path=Date}" ...>

推荐阅读