UWP DependencyObject 绑定 Windows.UI.Xaml.Markup.XamlParseException
UWP DependencyObject Binding Windows.UI.Xaml.Markup.XamlParseException
我有一个 Visual Studio 2019 UWP 项目,其中一个 XAML 页面使用依赖属性作为绑定值。 在调试模式下一切正常,但在发布模式下却不行。我绑定 VS relase 不喜欢的方式有什么问题?
下面的示例代码显示了一个 Windows.UI.Xaml.Controls.FontIcon 绑定到 MyDependencyClass DependencyObject class。
<FontIcon FontFamily="{ThemeResource SymbolThemeFontFamily}" Glyph="{Binding ElementName=MyPageUI, Path=(local:myDependencyClass.myGlyph)}" />
错误是 Windows.UI.Xaml.Markup.XamlParseException: 'XAML parsing failed.',这是由于 FontIcon 元素中的此绑定造成的。控制的类型无关紧要,同样的错误。
{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);
}
It's all working fine in debug mode but not in release.
我可以重现你的问题,xaml 绑定代码很有意义,请随意 post 你的问题与 windows 反馈中心或 post 在 WinUI issue 框。目前我们有一个解决方法,将 Binding
替换为 x:Bind
,并使用静态 属性 替换 Attached 属性.
Xaml
<FontIcon FontFamily="{ThemeResource SymbolThemeFontFamily}" Glyph="{x:Bind local:TestClass.Glyph}" />
代码
public static class TestClass
{
public static string Glyph
{
get
{
return "\xE72E";
}
}
}
我有一个 Visual Studio 2019 UWP 项目,其中一个 XAML 页面使用依赖属性作为绑定值。 在调试模式下一切正常,但在发布模式下却不行。我绑定 VS relase 不喜欢的方式有什么问题?
下面的示例代码显示了一个 Windows.UI.Xaml.Controls.FontIcon 绑定到 MyDependencyClass DependencyObject class。
<FontIcon FontFamily="{ThemeResource SymbolThemeFontFamily}" Glyph="{Binding ElementName=MyPageUI, Path=(local:myDependencyClass.myGlyph)}" />
错误是 Windows.UI.Xaml.Markup.XamlParseException: 'XAML parsing failed.',这是由于 FontIcon 元素中的此绑定造成的。控制的类型无关紧要,同样的错误。
{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);
}
It's all working fine in debug mode but not in release.
我可以重现你的问题,xaml 绑定代码很有意义,请随意 post 你的问题与 windows 反馈中心或 post 在 WinUI issue 框。目前我们有一个解决方法,将 Binding
替换为 x:Bind
,并使用静态 属性 替换 Attached 属性.
Xaml
<FontIcon FontFamily="{ThemeResource SymbolThemeFontFamily}" Glyph="{x:Bind local:TestClass.Glyph}" />
代码
public static class TestClass
{
public static string Glyph
{
get
{
return "\xE72E";
}
}
}