Я немного новичок в MVVM, и меня это немного смущает. Вот коды для файлов .cs и xaml. Есть ли более простой способ go об этом?
publi c частичный класс Categories: ContentPage {
public Categories()
{
InitializeComponent();
BindingContext = new MainViewModel();
}
private async void TapGestureRecognizer_Tapped(object sender, EventArgs e)
{
object SelectedItem = null;
if (SelectedItem != null)
{
CategoryViewModel myselecteditem = sender as CategoryViewModel;
switch (myselecteditem.CategoryImage)
{
case "Arts.png":
await Navigation.PushModalAsync(new Artspage());
break;
case "Music.png":
await Navigation.PushModalAsync(new Artspage());
break;
}
}
}
}
вот категории.XAML страница, на которой было нажато изображение, должна go перейти на новую страницу. Я точно уверен, какая ошибка сделана, что упущено или неправильно размещено. Пробовал все, что знаю.
<ContentPage.BindingContext>
<viewmodel:MainViewModel />
</ContentPage.BindingContext>
<AbsoluteLayout>
<StackLayout>
<ScrollView
AbsoluteLayout.LayoutBounds="20,300, 400, 620">
<FlexLayout
x:Name="flow"
BindableLayout.ItemsSource="{Binding Categories}"
Direction="Column"
HeightRequest="990"
HorizontalOptions="Center"
Wrap="Wrap">
<BindableLayout.ItemTemplate>
<DataTemplate>
<pancake:PancakeView>
<Grid>
<Image
Source="{Binding CategoryImage}"
BackgroundColor="Transparent"
TranslationX="-3"
TranslationY="40"
VerticalOptions="End"
HorizontalOptions="Center"
Margin="0,10,0,50">
<Image.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped"/>
</Image.GestureRecognizers>
</Image>
</Grid>
</pancake:PancakeView>
</DataTemplate>
</BindableLayout.ItemTemplate>
</FlexLayout>
</ScrollView>
</StackLayout>