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.

Objeto de Dependencia UWP Vinculación Windows.UI.Xaml.Markup.XamlParseException

Tengo un proyecto de Visual Studio 2019 UWP con una página XAML que utiliza propiedades de dependencia para vincular valores. Todo funciona bien en el modo de depuración, pero no en el de liberación. ¿Qué está mal en mi enfoque de enlace para que no funcione en la versión de Visual Studio?

El código de muestra a continuación muestra un FontIcon de Windows.UI.Xaml.Controls con una vinculación a la clase de objeto DependencyObject MyDependencyClass.

El error es Windows.UI.Xaml.Markup.XamlParseException: ‘No se pudo analizar XAML’, y es debido a este enlace en el elemento FontIcon. El tipo de control no importa, se produce el mismo error.

{Binding ElementName=MyPageUI, Path=(local:myDependencyClass.myGlyph)}

public abstract class MyDependencyClass: DependencyObject
{
public static readonly DependencyProperty MyGlyphProperty;

public static void SetMyGlyph(DependencyObject DepObject, string value)
{
    DepObject.SetValue(MyGlyphProperty, value);
}

public static string GetMyGlyph(DependencyObject DepObject)
{
    return (string)DepObject.GetValue(MyGlyphProperty);
}

static MyDependencyClass()
{
    PropertyMetadata MyPropertyMetadata = new PropertyMetadata("\xE72E");
    MyGlyphProperty = DependencyProperty.RegisterAttached("MyGlyph", typeof(string), typeof(MyDependencyClass), MyPropertyMetadata);
}

}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El problema con el binding en el elemento FontIcon que causa un error de análisis XML en modo release podría deberse a la forma en que se registra la propiedad adjunta del DependencyObject. Es importante asegurarse de que el objeto al que se está vinculando tenga una referencia al DependencyObject antes de que se produzca el binding.

    Una posible solución es asegurarse de que el DependencyObject esté inicializado antes de usarse, lo cual se podría lograr agregando un constructor estático a la clase DependencyObject. Otra solución podría ser usar un método más moderno y eficiente de crear DependencyObjects y registrar propiedades usando la biblioteca WinUI en lugar de DependencyObject, ya que proporciona un modelo más unificado para la programación de UI en las aplicaciones modernas de Windows.

Comments are closed.