次の方法で共有


WPFでビルドは通るのにXAMLデザイナでエラーになる。

質問

2013年8月24日土曜日 11:39

ほとほと困っています。

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する手もありますが、この現象の原因がわかる方がいましたらアドバイスお願いします。

すべての返信 (4)

2013年8月26日月曜日 14:17 ✅回答済み

自己レスです。

下記の様なページを見つけ、x64をx86に変更したところ、その半日後くらいにエラーは出なくなりました。

片鱗懐古のブログ wpf : x64でxamlを編集するとデザイナがごねる

エラー中はVS2010でなくVS2012でプロジェクトを開いても、エラーメッセージは変わるものの;たような状態だったので、この周辺のバグはまだ治ってないと言うことなのでしょうかね。

もっとも、他にもコードの変更などを行っていたので、上記が直接の原因だったのかは検;しておりませんが。


2013年8月27日火曜日 0:23 ✅回答済み | 1 票

直接的な回答ではありませんが、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/20101001

VS2012のXAMLデザイナーはVS2010のそれより進歩していますし、それに期待しながら付き合っていくしかないと個人的に思っています。

★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/


2013年8月27日火曜日 0:15

SHEN13 さん、こんにちは
フォーラム オペレーターの星 睦美です。

コミュニティの回答者からの返信はないようですが、ご自身で検;された結果をお知らせいただきましてありがとうございます。スレッドの内容はフォーラムで役立つと思います。

情報をお探しの方の目にもとまりやすくなるように、こちらのスレッドは私のほうでWPFフォーラムに移動させていただきますね。

それでは今後ともMSDN フォーラムをよろしくお願いします。

フォーラム オペレーター 星 睦美 - MSDN Community Support


2013年8月29日木曜日 4:52

今回は同様の問題に、SHEN13 さんとtrapemiya さんの返信が参考になると思いますので、私のほうで[回答としてマーク] させていただきました。

フォーラム オペレーター 星 睦美 - MSDN Community Support