2012-03-31 1 views
4

프리즘 라이브러리 샘플 및 설명서의 방법을 사용하여 WPF 창에서 컨트롤에 바인딩 된 CallMethodAction을 사용하려고합니다. 어떤 이유로 XAML 컴파일러는 Microsoft.Expression.Interactivity.Core 네임 스페이스가 존재하는지 여부를 확인하지 않습니다. 그러나, 그보기에 대한 코드 숨김에서 동일한 네임 스페이스의 동일한 클래스를 사용하는 데 아무런 문제가 없습니다.XAML (Prism Desktop)이 아닌 코드에서 Blend SDK 클래스를 사용할 수 있습니다.

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에서

두 번째에 대한 XML 또는 CLR 네임 스페이스.

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

는 그것은 Interaction.Triggers 태그를 찾는데 문제가 없지만, CallMethodAction 태그가 지정된 네임 스페이스에 존재하지 않는다고 불평 : 두 경우 모두, 다음 XAML이 컴파일되지 않습니다. 실제로 ic 네임 스페이스 태그의 Intellisense는 해당 네임 스페이스가없는 것처럼 작동합니다. 그러나 이 아닌은 존재하지 않는 네임 스페이스를 사용하려고하면 CLR 네임 스페이스를 찾을 수 없다는 오류를받습니다.

그러나,이 윈도우의 생성자에서,이 작업을 수행 할 수 있습니다 컴파일하고 잘 실행

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

합니다. 어떻게 가능할까요?

+1

Microsoft.Expression.Interactions.dll에 대한 참조를 제거하고 다시 추가 해 보셨습니까? – surfen

+0

@surfen :'* .Interactivity.dll'이 필요합니다 ... –

+0

@ H.B. Blend 어셈블리를 참조하지 않으면 어떻게 Blend 클래스를 사용해야합니까? –

답변

3

시도를 분리하고 한 번 내게 일어난 Microsoft.Expression.Interactions.dll*.Interactivity.dll

에 대한 참조를 다시 추가 그러나 나는 이유를 알지 못한다. 이것이 내가 해결 한 방법이다.