トップ回答者
WPFでビルドは通るのにXAMLデザイナでエラーになる。

質問
-
ほとほと困っています。
VS2010でWPFアプリ作成中、XAMLでCommandBindingsを追加するために以下の様に書きました。
(関係無さそうな部分は省略しています)
XAML
<Window x:Class="MyApp.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:MyApp" Title="MyApp" Height="400" Width="300"> <Window.CommandBindings> <CommandBinding Command="{x:Static local:MainWindow.Command1}" CanExecute="Command1_CanExecute" Executed="Command1_Executed"/> </Window.CommandBindings> </Window>
C#
namespace MyApp { public partial class MainWindow : Window { public static RoutedCommand Command1= new RoutedCommand(); public void Command1_CanExecute(object sender, CanExecuteRoutedEventArgs e) { e.CanExecute = true; } public void Command1_Executed(object sender, ExecutedRoutedEventArgs e) { throw new NotImplementedException(); }
もともと、別のプロジェクトで動作済みのコードをコピーしてきたので、ビルドも通り、実行しても意図どおりに動くのですが、
XAMLデザイナで「読み込みで問題が発生しました」と表示され、デザインが表示できなくなってしまうのです。
エラー一覧には、XAMLの7行目に対し、「型'local:MainWindow’は見つかりませんでした。」というエラーが発生しており、確かにその行をコメントアウトすればエラーは消えるのですが、気持ち悪いです。
コードビハインドでCommandBindingする手もありますが、この現象の原因がわかる方がいましたらアドバイスお願いします。
- 移動 星 睦美 2013年8月27日 0:15 Visual C# から
回答
-
直接的な回答ではありませんが、Visual StudioのXAMLデザイナーは、経験上、完璧ではないようです。以下のように解決できる場合もありますが、そうでない場合もあります。
WPF デザイナ読み込みエラーのトラブルシューティング
http://msdn.microsoft.com/ja-jp/library/bb546934(v=vs.90).aspx個人的にはコンパイルが通ればよしとしていますし、Visual StudioのXAMLデザイナーがこける場合にはBlendを使います。
(私の場合の例)
■[WPF] CallMethodActionを継承したBehaviorを指定するとVisual Studio 2010のXAMLデザイナで例外が発生する
http://d.hatena.ne.jp/trapemiya/20101001VS2012のXAMLデザイナーはVS2010のそれより進歩していますし、それに期待しながら付き合っていくしかないと個人的に思っています。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
- 回答としてマーク 星 睦美 2013年8月29日 4:47
-
自己レスです。
下記の様なページを見つけ、x64をx86に変更したところ、その半日後くらいにエラーは出なくなりました。
片鱗懐古のブログ wpf : x64でxamlを編集するとデザイナがごねる
エラー中はVS2010でなくVS2012でプロジェクトを開いても、エラーメッセージは変わるものの似たような状態だったので、この周辺のバグはまだ治ってないと言うことなのでしょうかね。
もっとも、他にもコードの変更などを行っていたので、上記が直接の原因だったのかは検証しておりませんが。
- 回答としてマーク 星 睦美 2013年8月29日 4:47
すべての返信
-
自己レスです。
下記の様なページを見つけ、x64をx86に変更したところ、その半日後くらいにエラーは出なくなりました。
片鱗懐古のブログ wpf : x64でxamlを編集するとデザイナがごねる
エラー中はVS2010でなくVS2012でプロジェクトを開いても、エラーメッセージは変わるものの似たような状態だったので、この周辺のバグはまだ治ってないと言うことなのでしょうかね。
もっとも、他にもコードの変更などを行っていたので、上記が直接の原因だったのかは検証しておりませんが。
- 回答としてマーク 星 睦美 2013年8月29日 4:47
-
直接的な回答ではありませんが、Visual StudioのXAMLデザイナーは、経験上、完璧ではないようです。以下のように解決できる場合もありますが、そうでない場合もあります。
WPF デザイナ読み込みエラーのトラブルシューティング
http://msdn.microsoft.com/ja-jp/library/bb546934(v=vs.90).aspx個人的にはコンパイルが通ればよしとしていますし、Visual StudioのXAMLデザイナーがこける場合にはBlendを使います。
(私の場合の例)
■[WPF] CallMethodActionを継承したBehaviorを指定するとVisual Studio 2010のXAMLデザイナで例外が発生する
http://d.hatena.ne.jp/trapemiya/20101001VS2012のXAMLデザイナーはVS2010のそれより進歩していますし、それに期待しながら付き合っていくしかないと個人的に思っています。
★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
- 回答としてマーク 星 睦美 2013年8月29日 4:47