Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

開発ツール: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」キーで移動できないだけでビルドエラーにはならないので特に問題はなかったのかもしれない。

yokkong
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away