2017-01-26 2 views
0

내 Xamarin iOS 프로젝트에서 버튼을 ICommand에 매개 변수로 바인딩하고자합니다.매개 변수가있는 바인딩 명령

보기 :

var set = this.CreateBindingSet<MyView, MyViewModel>(); 
set.Bind(Button1).To(vm => vm.EditCommand).WithConversion(new MvxCommandParameterValueConverter(), 1); 
set.Apply(); 

뷰 모델 : 나는 버튼을 누르면

private readonly ICommand editCommand; 
public MyViewModel() 
{ 
    editCommand = new BaseMvxCommand<int>(DoEditPhoto); 
} 

public ICommand EditCommand { get { return editCommand; } } 
private void DoEditPhoto(int imageNum) 
{ 
    // enter code here 
} 

, 나는 DoEditPhoto() 실행할 수 없습니다입니다. 나는 잘못된 방식으로 묶는거야? 누구든지 나를 도울 수 있습니까?

+0

가능한 중복 http://stackoverflow.com/questions/17492742/mvvmcross-bind-command :이를 위해 당신은 대신 체인 CommandParameter을 사용할 수 있습니다 -with-parameter-in-c-sharp 코드) – Cheesebaron

+0

BaseMvxCommand 란 무엇입니까? – Cheesebaron

+0

BaseMvxCommnad는 MvxCommand 클래스입니다. 이 질문은 이미 사용하고있는 명령 매개 변수를 사용하도록 제안되었지만 작동하지 않았기 때문에이 질문과 중복되지 않습니다. – TheDeveloper

답변

2

예 바인딩이 기술적으로 잘못되지 않았습니다. 그러나 변환기을 사용하여 매개 변수를 바운드 ICommand에 전달할 필요가 없습니다.

set.Bind(Button1).To(vm => vm.EditCommand).CommandParameter(ViewModel.ImageNumber); 
([MvvMCross는 (C# 코드에서) 매개 변수를 사용하여 명령을 결합]의
+0

작동하지 않습니다. – TheDeveloper

+0

잘 작동합니다. BaseMvxCommand가 잘못된 작업을 수행해야합니다. – Cheesebaron

+0

이제 작동합니다. 감사. – TheDeveloper

관련 문제