2017-12-12 3 views
-1

WPF의 단추에서 함수를 호출하려고합니다.C#의 단추에서 인터페이스를 사용하는 함수를 호출하는 방법

public RecorderView(IAudioRecorder recorder) 
    { 
     RecorderViewModel rvm = new RecorderViewModel(); 
     beginRecordingCommand = new RelayCommand(rvm.BeginRecording,() => recorder.RecordingState == RecordingState.Stopped || recorder.RecordingState == RecordingState.Monitoring); 

    } 

나는 그것이 인터페이스 (IAudioRecorder 레코더)를 사용하기 때문에이 함수를 호출하는 방법을 확실 해요 : 는 여기에 내가 전화하려고 해요 기능입니다. 일반적으로 버튼 클릭 이벤트 내에서 RecorderView()를 호출 하겠지만 인터페이스를 사용하고 있기 때문에 어떻게해야합니까?

감사

당신이 인터페이스를 구현하는 클래스가있는 경우

답변

0

...

class AudioRecorder : IAudioRecorder 
{ 
    //Etc.... 

... 그리고 인터페이스를 예상하는 생성자 ....

public RecorderView(IAudioRecorder recorder) 

. .. 당신은 클래스의 인스턴스로 호출 할 수 있습니다.

var a = new AudioRecorder(); 
var b = new RecorderView(a); //a is automatically cast to the interface 

... 또는 당신이 IoC 컨테이너를 사용하여 인스턴스화 할 수 있습니다 ...

container.RegisterType<IAudioRecorder, AudioRecorder>(); 
container.RegisterType<RecorderView, RecorderView(); 
var b = container.Resolve<RecorderView>(); 

... 그리고 IoC 컨테이너는 당신을 위해 생성자 인수를 채 웁니다.

+0

감사합니다. 나는 지난 주에 이것을 알아 내려고 노력했다. 나는 또한 내가 함수라고 부르는 것에 대해 혼란스러워했던 생성자를 보았다. – Shane

관련 문제