I have his method
void OnPinMarkerClicked(object turbine)
{
if (turbine != null)
{
#if ANDROID || IOS
Shell.Current.GoToAsync($"{nameof(TurbineDetailPage)}",
true,
new Dictionary<string, object> {
{ "SelectedTurbine", turbine }
});
#elif WINDOWS || MACCATALYST
var viewModel = _serviceProvider.GetRequiredService<TurbineDetailPageViewModel>();
var page = new TurbineDetailPage(viewModel);
Application.Current!.OpenWindow(new Window(page));
#endif
And it navigates with my data on mobile
but on desktop I don't get anything
public partial class TurbineDetailPage : ContentPage
{
public TurbineDetailPage(TurbineDetailPageViewModel turbineDetailVViewModel)
{
InitializeComponent();
BindingContext = turbineDetailVViewModel;
}
}
VM
[QueryProperty(nameof(SelectedTurbine), "SelectedTurbine")]
public partial class TurbineDetailPageViewModel : ObservableObject
{
[ObservableProperty]
TurbinePin? selectedTurbine;
}
}
i MADE THAT HAPPENED WITH THIS
var viewModel = _serviceProvider.GetRequiredService
<TurbineDetailPageViewModel>();
viewModel.SelectedTurbine = (TurbinePin)turbine;
var page = new TurbineDetailPage(viewModel);
var secondWindow = new Window(page);
var existingWindow = Application.Current!.Windows.FirstOrDefault(
w => w.Page is TurbineDetailPage detailPage
&& detailPage.BindingContext == viewModel);
if (existingWindow != null)
{
Application.Current?.ActivateWindow(existingWindow);
}
else
{
Application.Current!.OpenWindow(secondWindow);
}