4

次のように参照されるバインディング コンバーターを持つ WPF UserControl があります。

<UserControl x:Class="MyControl" x:Name="MyControl"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:local="clr-namespace:TheMainNamespaceOfThisAssembly">

    <UserControl.Resources>
      <local:ConfidenceColorConverter x:Key="ConfidenceColorConverter"/>
    </UserControl.Resources>

後でバインディング コンバーターを使用します。デザイン ウィンドウにユーザー コントロールが表示されます。次に、コンパイルして、このユーザー コントロールをメイン ウィンドウに配置します。私はそれを実行し、動作します。ただし、メインウィンドウでデザイナーを使用したいのですが、次のように壊れます。

タイプ 'MyControl' のインスタンスを作成できませんでした。

そこで、デザイナをデバッグする方法を学びました。すると、XamlParseException が発生します。

タイプ 'TheMainNamespaceOfThisAssembly.ConfidenceColorConverter' が見つかりません。コンパイル時に使用されるアセンブリは、読み込み時に使用されるものとは異なる可能性があり、型が欠落しています。マークアップ ファイルにエラーがあります...

コンバーターへの参照を削除すると、ユーザー コントロールがメイン ウィンドウのデザイナーに適切に表示されます。 デザイナーを壊さないようにコンバーターへの参照を修正する方法はありますか?

記事「WPF デザイナーの読み込みエラーのトラブルシューティング」が適用されるかどうかを理解できませんでした。

4

2 に答える 2

1

他の人と話し合った結果、VS2008 の設計者には多くの問題があり、多くの状況での使用が妨げられています。あきらめました。

更新: 一部、特に Joel Cochran は、XAML 開発における MVVM の 4 つの原則に従う限り、Expression Blend デザイン ビューを使用してより多くの成功を収めているようです。

于 2010-04-19T19:23:56.723 に答える
1

既存のプロジェクトを編集するのではなく、クリーンな新しいプロジェクトで問題を再現してみてください。持つことはできません

<UserControl x:Class="MyControl" x:Name="MyControl"...

名前空間を「x:class」に追加し、「x:Name」の値をクラス名とは異なるものに変更する必要があるためです。この種のエラーを説明して修正するように、クリーンなプロジェクトを作成すると、デザイナーは正常に動作します。重要ではないと思う質問の詳細を省略しているかもしれませんが、それらの詳細がすべての違いを生む可能性があります。

于 2010-02-26T12:01:36.557 に答える