C# 在ContentView-Xamarin.Forms定义的页面上,解析在XAML中声明的日期到日期选择器
我有一个日期选择器的第一页。在导航中,我想将数据从日期选择器传递到目标页面上的日期选择器 问题在于,目标页面是由ContentView定义的,而ContentView不是从目标页面本身之外的任何地方使用的 以下是第一个日期选择器的原始页面:C# 在ContentView-Xamarin.Forms定义的页面上,解析在XAML中声明的日期到日期选择器,c#,parsing,xamarin.forms,parameter-passing,C#,Parsing,Xamarin.forms,Parameter Passing,我有一个日期选择器的第一页。在导航中,我想将数据从日期选择器传递到目标页面上的日期选择器 问题在于,目标页面是由ContentView定义的,而ContentView不是从目标页面本身之外的任何地方使用的 以下是第一个日期选择器的原始页面: public TavoloList () { InitializeComponent (); } protected override void OnAppearing() { Date
public TavoloList ()
{
InitializeComponent ();
}
protected override void OnAppearing()
{
DateTime currentDate = MainDatePicker.Date;
this.BindingContext = new TavoloListViewModel(Navigation);
}
<DatePicker x:Name="MainDatePicker" Grid.Row="1" Grid.Column="1" />
以下是XAML中的AddTavolo:
<local:TavoloContentView />
添加到AddTavolo代码behing部分,但我得到一个错误,即TavoloContentView.pickArrivalDate由于其保护级别而不可访问。(很明显,我也在整个路线上传递DateTime currentDate,但我只能到达AddTavolo页面。我不知道如何进一步传递到Tavolo内容视图)
我正在发布AddTavoloViewModel:
public AddTavoloViewModel(INavigation navigation)
{
_navigation = navigation;
_tavolo = new Tavolo();
_tavoloRepository = new TavoloRepository();
AddTavoloCommand = new Command(async () => await AddTavolo());
ViewAllTavoloCommand = new Command(async () => await ShowTavoloList());
}
async Task AddTavolo()
{
bool isUserAccept = await Application.Current.MainPage.DisplayAlert("Add Tavolo", "Do you want to save Tavolo details?", "OK", "Cancel");
if (isUserAccept)
{
_tavoloRepository.InsertTavolo(_tavolo);
await _navigation.PushAsync(new TavoloList());
}
}
和AddTavolo代码隐藏:
public AddTavolo()
{
InitializeComponent();
BindingContext = new AddTavoloViewModel(Navigation);
}
请发布相关代码是的,我现在正在这样做。这是一个由TavoloContentView定义的页面。TavoloContentView仅用于定义AddTavolo页面的布局。向AddTavolo添加一个costructor,并使用一个参数保存要传递给它的日期。->公共AddTavolo(DateTime date2pass){/}
TavoloContentView.pickArrivalDate.Date = currentDate;
public AddTavoloViewModel(INavigation navigation)
{
_navigation = navigation;
_tavolo = new Tavolo();
_tavoloRepository = new TavoloRepository();
AddTavoloCommand = new Command(async () => await AddTavolo());
ViewAllTavoloCommand = new Command(async () => await ShowTavoloList());
}
async Task AddTavolo()
{
bool isUserAccept = await Application.Current.MainPage.DisplayAlert("Add Tavolo", "Do you want to save Tavolo details?", "OK", "Cancel");
if (isUserAccept)
{
_tavoloRepository.InsertTavolo(_tavolo);
await _navigation.PushAsync(new TavoloList());
}
}
public AddTavolo()
{
InitializeComponent();
BindingContext = new AddTavoloViewModel(Navigation);
}