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;
2番目の編集/解決策:
13行目の問題がMainPage.xamlにあることがわかりました。
<SoundControls:tcNote HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" />
その行にはエラーがあるように見え(青い下線が表示されますが、それでもビルドできます)、その行にカーソルを合わせると、「インスタンスメソッドへのデリゲートはnull'this'を持つことはできません」と表示されます。問題は、*PART_note*がまだ利用できないことのようです。コンストラクターのこれらの行をOnApplyTemplateメソッドに移動する必要がありました。