es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

WInUI 3.0 Desktop: Error al intentar navegar — se produjo un bloqueo debido a una excepción.

Quiero cambiar el marco, pero obtengo esta excepción:

Excepción

Navegación:

Frame rootFrame = new Frame();
rootFrame.Navigate(typeof(ScoreWindow), null, new EntranceNavigationTransitionInfo());

La excepción aparece en el constructor:

public ScoreWindow()
{
    this.InitializeComponent();
    results = new List<result>();
    playerList = new();
    LoadData();
    var _resultsView = ConvertToView();
    sfDataGrid.ItemsSource = _resultsView;
}

¡Gracias por las respuestas de antemano y felices fiestas!

P.D. Gracias a Raymond, detecté este mensaje:

WinUI: Error creando una segunda ventana de escritorio en el proceso actual. No se permite más de una ventana de escritorio por proceso.

Hay otra pregunta: ¿cómo cambiar el marco actual a otro? Me refiero a que tengo una vista de inicio de sesión, el usuario ha iniciado sesión correctamente y desea ver los datos/otras cosas.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que la excepción que estás recibiendo está relacionada con la creación de una segunda ventana de escritorio en el proceso actual, lo cual no está permitido en WinUI-3. Esto podría estar ocurriendo cuando navegas a un nuevo marco o ventana. Una posible solución podría ser usar la clase Window en lugar de Frame, y crear una nueva ventana para la ScoreWindow:

    Window scoreWindow = new Window();
    scoreWindow.Content = new ScoreWindow();
    scoreWindow.Show();
    

    Para cambiar la vista/marco actual en tu aplicación, puedes usar la clase NavigationService. Esta clase es responsable de navegar entre diferentes vistas y te ayuda a gestionar el historial de navegación. Aquí tienes un ejemplo de cómo puedes usarlo:

    // Navegar a una nueva vista
    NavigationService.Navigate(new Uri("/Views/DataView.xaml", UriKind.Relative));
    
    // Volver a la vista anterior
    if (NavigationService.CanGoBack)
        NavigationService.GoBack();
    

    ¡Espero que esto ayude! ¡Felices fiestas!

Comments are closed.