2013-01-08 1 views
3

WPF 응용 프로그램의 Window 내에 UserControl이 있습니다. 모델에서WPF ICommand.Execute on UI,

<StackPanel Orientation="Horizontal" Margin="5"> 
     <Button Command="{Binding AddFileCommand}" /> 
    </StackPanel> 

나는 선언하고 AddFileCommand 변수를 초기화 한 :

public ICommand AddFileCommand { get; set; } 

public XXXModel() 
{ 
    AddFileCommand = new DelegateCommand(o => true, AddFile); 
} 

가장 좋은 해결책은 ICommand의 대신 Click 이벤트를 사용하여 감상 할 수있다.

Windows XP에서이 단추를 클릭해도 AddFile (개체 매개 변수) 기능이 실행되지 않습니다. Windows Vista/Windows 7에서는 매력처럼 작동합니다. 코드에서 직접 ICommand.Execute()을 호출하면 XP에서도 작동합니다.

.NET Framework (프로젝트에서 .NET 4.0 사용)를 업데이트하려고했지만 여전히 코드가 부족합니다.

이 문제를 어떻게 해결할 수 있습니까?

@ ta.speot.is 의해 바와 같이
+0

어떤 DelegateCommand입니까? http://msdn.microsoft.com/en-us/library/ff654427.aspx? –

+0

네, 그 중 하나를 사용하고 있습니다. – ermahgerd

+2

그 생성자는'Action'을 두 번째 매개 변수가 아닌 첫 번째 매개 변수로 사용합니다. –

답변

-1

DelegateCommand 생성자 > 호출 할 < T 조치로서 제 인수를, 두 번째는 CanExecute 언급 Func을 < T, BOOL >()이다.

Func을 < T, 부울 >보다는 액션 <T>를 실행합니다 귀하의 Execute 방법. 하나의 OS에서는 작동하지 않고 다른 OS에서는 작동하지 않습니다.