2012-03-31 17 views
4

CallMethodActionは、Prismライブラリのサンプルとドキュメントのメソッドを使用してWPFウィンドウのコントロールにバインドしています。なんらかの理由で、XAMLコンパイラはMicrosoft.Expression.Interactivity.Coreという名前空間が存在することを確認することを拒否します。しかし、私は、そのビューのコードビハインドで同じ名前空間から同じクラスを使用しても問題ありません。コードでBlend SDKクラスを使用できますが、XAML(Prism Desktop)では使用できません。

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
xmlns:ic="http://schemas.microsoft.com/expression/2010/interactions" 

だけでなく、CLR名前空間:

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
xmlns:ic="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions" 

名前空間インテリセンスポップアップブラウザが最初に表示される名前空間が、どちらも私は両方の標準的な名前空間を試してみたXAMLで

2番目のXMLの名前空間もCLRもありません。いずれの場合も、以下のXAMLは、コンパイルに失敗します。

<Button HorizontalAlignment="Right" Content="Cancel"> 
    <i:Interaction.Triggers> 
     <i:EventTrigger EventName="Click"> 
      <ic:CallMethodAction /> 
     </i:EventTrigger> 
    </i:Interaction.Triggers> 
</Button> 

それは何の問題Interaction.Triggersタグを見つけることはありませんが、CallMethodActionタグが指定された名前空間に存在しないことに文句を言います。実際には、ic名前空間タグのIntellisenseは、そのような名前空間がないかのように動作します。しかし、私はではありません CLR名前空間が見つかりませんでした、私は存在しない名前空間を使用しようとするエラーを取得します。

しかし、このウィンドウのコンストラクタで、私はこれを行うことができます。コンパイルし、正常に動作

var x = new Microsoft.Expression.Interactivity.Core.CallMethodAction(); 

を。どのようにそれは可能ですか?

+1

Microsoft.Expression.Interactions.dllへの参照を削除して再追加してみましたか? – surfen

+0

@surfen: '* .Interactivity.dll' ... –

+0

@ H.Bが必要です。ブレンドアセンブリを参照しない場合、どのようにブレンドクラスを使用する必要がありますか? –

答えて

3

は、それがかつて私に起こったが、私はなぜ知らないMicrosoft.Expression.Interactions.dll*.Interactivity.dll

への参照を削除し、再追加してみてください。これが私が解決した方法です。

関連する問題