投稿

7月, 2009の投稿を表示しています

XamlParseExceptionはハンドルされませんでした

ついにWPFに手を出し始めました。
で、最初にはまったのがタイトルのエラー、っていうか例外。
メッセージの詳細は以下のような感じでです。

----
アセンブリ 'WpfApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' で定義された 'Window1' のインスタンスを作成できません。 呼び出しのターゲットが例外をスローしました。 マークアップ ファイル 'Window1.xaml' 行 1 位置 9 にエラーがあります。
----

一見するとXamlのエラーに見えますが、じつはC#のソースコードに問題があります。
XamlでWindowのクラスをインスタンス化する際に、ソースコードに誤りがあると発生します。
実行時に発生する例外なので、ビルドは普通に通ってしまうため、見つけにくい。

例外が発生するWindowのコンストラクタで、既定の初期化処理(下記)よりも前に何らかの処理を追加すると発生するケースが多い。
例えば、初期化処理よりも前にWindowに配置されたコントロールの値を参照(Nullなのでエラーになる)するなど。

InitializeComponent();