繁体   English   中英

XamlParseException初始化静态类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM