1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

XAMLのデザイン画面からイベント定義に移動できない(Ensure Event Failed)

Posted at

開発ツール:Visual Studio、言語:C#、プロジェクト:WPFアプリケーション

ウィンドウに適当なコントロールを作成し、イベントを追加した。

<TextBox x:Name="TextBox1" (略) KeyDown="TextBox_KeyDown"/>

普通なら「TextBox_KeyDown」の部分にカーソルを移動させて「F12」キーを押すとイベントの定義に移動する。

private void TextBox_KeyDown(object sender, KeyRoutedEventArgs e)
{
}

はずなのだが「Ensure Event Failed」というエラーが出て移動できなかった。
とりあえず「Ensure Event Failed」で調べてみたところStack Overflowに同じような質問があった。
http://stackoverflow.com/questions/33094622/ensure-event-failed-error-occur

このQ&AのケースだとXAMLファイルに「x:Class」が無いですよ、ということだった。
「x:Class」属性とはXAMLファイルとクラスを結合させるために必要で、通常であればMainWindow.xamlファイルを作成すると要素に「x:Class="APP名.MainWindow"」が追加されている。
自分のソースを確認してみるとなぜか「x:Class=" APP名.MainWindow"」という感じで余計な半角スペースが一つ入っており、それが原因で該当のクラスが無い、と判断されていたらしい。
実際に半角スペースを削除して「x:Class="APP名.MainWindow"」とすると問題なくコードに移動することができた。

なぜ半角スペースが入っていたかについては、謎。
今までは大丈夫だったのかな?とも思うが例えばすでにイベントが追加された後で「x:Class=" APP名.MainWindow"」みたいになった場合、「F12」キーで移動できないだけでビルドエラーにはならないので特に問題はなかったのかもしれない。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?