У меня есть CollectionView объектов класса и кнопка, которая получает SelectedItem и открывает ClassInfoPage. Мне было интересно, если есть способ применить тот же обязательный контекст SelectedItem к ClassInfoPage. Моя цель состоит в том, чтобы ClassInfoPage использовал тот же объект Class, что и SelectedItem, без необходимости извлекать объект из SelectedItem, изменять его в ClassInfoPage и помещать обратно в его ObservableCollection. Заранее спасибо
CollectionView xaml
<CollectionView ItemsSource="{Binding Classes}" x:Name="ClassesCollectionView" SelectionMode="Single" HeightRequest="0">
<CollectionView.ItemTemplate>
<DataTemplate>
<FlexLayout Direction="Row" AlignItems="Center" JustifyContent="SpaceEvenly" HeightRequest="35">
<Label Text="{Binding ClassName}" FontSize="Micro" />
<Label Text="{Binding ClassStatus}" FontSize="Micro"/>
<DatePicker Date="{Binding ClassStartDate}" FontSize="Micro"/>
<DatePicker Date="{Binding ClassEndDate}" FontSize="Micro"/>
</FlexLayout>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
мой код в событии щелчка ClassInfoButton
private async void ClassInfoButton_OnClicked(object sender, EventArgs e)
{
FlexLayout selectedClass = ClassesCollectionView.SelectedItem as FlexLayout;
await Navigation.PushAsync(new ClassInfoPage());
}
ClassInfoPage.xaml
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="TermManager.ClassInfoPage">
<ContentPage.Content>
<StackLayout>
<FlexLayout AlignItems="Center" Direction="Row" JustifyContent="SpaceBetween">
<DatePicker Date="{Binding ClassStartDate}"/>
<Editor Text="{Binding ClassName}"/>
<DatePicker Date="{Binding ClassEndDate}"/>
</FlexLayout>
<Editor Text="{Binding ClassNotes}"/>
<Editor Text="{Binding ClassTeacherName}"/>
</StackLayout>
</ContentPage.Content>
</ContentPage>