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.

Crash cuando se utiliza HyperlinkButton con NavigateUri vacío.

Estoy tratando de usar HyperlinkButton en mi aplicación UWP. Y estoy estableciendo “NavigateUri” más adelante en el ciclo de vida del control. El valor predeterminado de “ViewModel.SecondaryLink” en el fragmento de código a continuación está vacío. Y cuando está vacío, se produce un error. ¿Entonces no podemos mantener el valor de NavigateUri como vacío para HyperlinkButton? Cuando lo inicializo en el constructor del control, funciona sin errores, pero obtengo este valor de Internet, por lo que necesito establecerlo más tarde. Por favor ayuda.


    

Archivo .cpp

Windows::Foundation::Uri FamilyValuePropControlViewModel::SecondaryLink()
{
    return Windows::Foundation::Uri(m_secondaryLink);
}

Archivo .h

winrt::hstring m_secondaryLink{ L"" };
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Según la documentación, la propiedad NavigateUri de HyperlinkButton no debe estar vacía. Debe establecerse en un URI válido. En este caso, como el valor de NavigateUri se establece más adelante en el ciclo de vida del control, puedes establecerlo inicialmente en un URI ficticio y luego actualizarlo cuando esté disponible el valor. Por ejemplo, puedes establecerlo en “about:blank” como un valor de marcador de posición, que es un URI válido y no causará un fallo:

    <hyperlinkbutton content="Más información" fontsize="14" margin="0,0,0,0" style="{StaticResource HyperlinkButtonStyle}" navigateuri="about:blank"></hyperlinkbutton>
    

    Luego, cuando el valor esté disponible, puedes actualizarlo en el código:

    ViewModel.SecondaryLink = "http://example.com";
    // O utilizar un objeto Uri: ViewModel.SecondaryLink = new Uri("http://example.com");
    

    De esta manera, el valor de NavigateUri siempre será un URI válido y no causará un fallo.

Comments are closed.