[英]XamlParseException initialising a static class
我在某些代码中有一个XamlParseException
,它试图选择TextBox
所有TextBox
。
XAML:
通用:SelectAllTextOnFocus.IsTextSelectedOnFocus =“ True” />
后面的代码:
public static class SelectAllTextOnFocus
{
public static readonly DependencyProperty IsTextSelectedOnFocusProperty = DependencyProperty.RegisterAttached("IsTextSelectedOnFocus", typeof(bool), typeof(SelectAllTextOnFocus), new UIPropertyMetadata(false, OnIsTextSelectedOnFocusChanged));
public static bool GetIsTextSelectedOnFocus(TextBox item)
{
return (bool)item.GetValue(IsTextSelectedOnFocusProperty);
}
public static void SetIsTextSelectedOnFocus(TextBox item, bool value)
{
item.SetValue(IsTextSelectedOnFocusProperty, value);
}
static void OnIsTextSelectedOnFocusChanged(DependencyObject depObj, DependencyPropertyChangedEventArgs e)
{
var item = depObj as TextBox;
if (item == null)
{
return;
}
if (e.NewValue is bool == false)
{
return;
}
if ((bool)e.NewValue)
{
item.GotFocus += OnGotFocus;
}
else
{
item.GotFocus -= OnGotFocus;
}
}
我收到一个XmalParseException,并显示以下消息:'Common.SelectAllTextOnFocus'的类型初始值设定项引发了异常。
任何想法是什么原因导致的,或者如何进行调试?
内部例外是:“ IsTextSelectedOnFocus”属性已由“ SelectAllTextOnFocus”注册。
创建时将其注册为静态类-那么如何将其注册两次?
假设您已在调试器中发现此错误,请查看InnerException
,它应该向您显示导致TypeInitializationException
的异常。 那应该给您更多关于哪里看的提示。
我只能看到一行,但这可能是问题所在:
public static readonly DependencyProperty IsTextSelectedOnFocusProperty =
DependencyProperty.RegisterAttached("IsTextSelectedOnFocus",
typeof(bool),
typeof(SelectAllTextOnFocus),
new UIPropertyMetadata(false, OnIsTextSelectedOnFocusChanged));
这是将在类型初始化程序中执行的唯一代码。
我看不到它有什么问题,但是随后我对注册依赖项属性并不十分熟悉。
类型初始化器(也称为静态构造函数)为您的static
字段运行初始化程序。
换句话说, IsTextSelectedOnFocusProperty
初始化程序引发异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.