2016-11-03 2 views
0

.dotcontrol이 있고 viewmodel에서 함수의 컨트롤을 호출해야합니다.DOTVVM에서 컨트롤의 데이터로 viewmodel의 메서드를 호출하려면 어떻게해야합니까?

viewmodel에서만 사용할 수있는 facade가 필요하기 때문에 메서드를 제어 할 수 없습니다. 그래서 viemodel 인터페이스를 선언하고이 함수를 구현했습니다.

그러나 나는 다음과 같이 호출하는 경우 :

<dot:Button Click="{controlCommand: ViewModelFunction(ControlProperty)}" Text="CHECK CODE"/> 

는 다음과 같은 오류가 발생합니다이 모습

<dot:Button Click="{command: ViewModelFunction(ControlProperty)}" Text="CHECK CODE"/> 

:

The Name 'ViewModelFunction' does not exist in the current context'.

그래서 난 그냥 명령으로 전화 시도를 그래도 한 페이지에 두 개의 컨트롤이 있으면 작동하지 않습니다. 이 메서드는 컨트롤의 첫 번째 사용 데이터로 호출되기 때문에. 컨트롤의 다른 사용법에 대한 데이터는 인식되지 않습니다.

컨트롤의 데이터로 viewmodel의 메서드를 어떻게 호출 할 수 있습니까?

답변

1

이 ViewModel에 선언되고 controlCommand의 기본 바인딩 컨텍스트가 제어이기 때문에 controlCommand이 작동하지 않습니다. _this 매개 변수를 사용하여 뷰 모델의 메서드 및 속성에 액세스 할 수 있습니다. 우리는 두 번째 방법은 희망 미래에서 작동하므로, 명령 바인딩이 제한을 제거하기 위해 기획하는 방식으로

<dot:Button Click="{controlCommand: _this.ViewModelFunction(ControlProperty)}" Text="CHECK CODE"/> 

:처럼 그래서 보일 것입니다.