对于Windows应用商店应用,我正在尝试开发一些自定义控件(我实际上使用模板化控件来执行此操作,如果这很重要)。我得到了一个相当模糊的错误(如标题中所示)。唯一的补充信息是:
WinRT information: Cannot create instance of type 'SoundControls.tcNote' [Line: 13 Position: 51]
我不确定问题是否与Generic.xaml文件有关,其中定义了控件的布局(我认为错误似乎指向)或文件背后的代码。
无论哪种方式,两者都是第13行:
Generic.xaml
BorderBrush="{TemplateBinding BorderBrush}"
背后的代码
using Windows.UI.Xaml.Controls.Primitives;
两者似乎都毫无意义且无害。有没有人有什么想看更接近解决这个错误的想法?我愿意发布代码片段等(相关/请求),但我总是讨厌看一个问题而只看到代码页。
修改
根据要求构造函数:
this.DefaultStyleKey = typeof(tcNote);
(GetTemplateChild("PART_note") as Thumb).DragStarted += tcNote_DragStarted;
(GetTemplateChild("PART_note") as Thumb).DragDelta += tcNote_DragDelta;
(GetTemplateChild("PART_note") as Thumb).DragCompleted += tcNote_DragCompleted;
第二次编辑/解决方案:
我发现第13行问题出现在MainPage.xaml。
<SoundControls:tcNote HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" />
该行看起来有错误(蓝色下划线,但它仍然让我构建)如果我将鼠标悬停在它上面,它说“委托给一个实例方法不能为'''。”问题似乎是* PART_note *尚未提供。我需要将构造函数中的这些行移动到 OnApplyTemplate 方法中。
答案 0 :(得分:1)
当我遇到这个错误时,我会做两件事:
检查InnerException(重复此步骤直到 null )以更好地了解正在发生的事情。修复它。
如果没有InnerException(或者它太模糊)我会注释掉所有XAML并开始慢慢将其恢复。这有助于查明违规的XAML或代码。
答案 1 :(得分:0)
您是否可以在第13行的其他XAML文件中实例化SoundControls.tcNote
?错误可能源自那里。
问题可能是:
GetTemplateChild("PART_note") as Thumb
不是null吗?如果你注释掉这些行会有帮助吗?StaticResource
引用来解析错误。我会通过最小化控件中的代码/ XAML数量并查看问题是否消失来开始解决问题。
答案 2 :(得分:0)
我意识到这是一个老问题。我只是偶然发现了这个错误,在我的情况下,这是因为在一个语言资源中我设置了一个文本框的文本,该文本框也绑定到视图模型中的属性。当然,在异常中没有任何线索,内部异常被关闭,它只在模拟器上显示,因为本地机器正在使用另一种文化。这使得难以追踪。也许这会帮助一些不幸的灵魂。