1

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メソッドに移動する必要がありました。

4

3 に答える 3

1

このエラーが発生した場合、次の2つのことを行います。

  1. InnerExceptionをチェックして(nullになるまでこの手順を繰り返します)、何が起こっているのかをよりよく理解します。修理する。

  2. InnerExceptionがない場合(またはあいまいすぎる場合)、すべてのXAMLをコメントアウトし、ゆっくりと元に戻します。これは、問題のあるXAMLまたはコードを特定するのに役立ちます。

于 2013-03-22T05:46:14.160 に答える
0

SoundControls.tcNote13行目で他のXAMLファイルをインスタンス化していますか?エラーはそこから発生する可能性があります。

問題は次のいずれかである可能性があります。

  • コントロールのコンストラクター内:GetTemplateChild("PART_note") as Thumbnullではありませんか?これらの行をコメントアウトすると役に立ちますか?
  • またはそのXAMLのどこか:解決できないStaticResource参照または他のエラーのためにエラーを解析します。

コントロール内のコード/XAMLの量を最小限に抑え、問題が解決するかどうかを確認することで、問題のトラブルシューティングを開始します。

于 2013-03-22T05:40:27.827 に答える
0

これは古い質問だと思います。このエラーに遭遇したのは、私の場合、ある言語リソースで、ビューモデルのプロパティにもバインドされているテキストボックスのテキストを設定していたためです。もちろん、例外にはこれについての手がかりはなく、内部の例外は閉じられ、ローカルマシンが別のカルチャを使用していたため、エミュレータにのみ表示されました。これにより、追跡が困難になりました。多分これはいくつかの不幸な魂を助けるでしょう。

于 2016-12-01T18:29:22.217 に答える